CVE-2026-31433
Description
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: fix potencial OOB in get_file_all_info() for compound requests
When a compound request consists of QUERY_DIRECTORY + QUERY_INFO (FILE_ALL_INFORMATION) and the first command consumes nearly the entire max_trans_size, get_file_all_info() would blindly call smbConvertToUTF16() with PATH_MAX, causing out-of-bounds write beyond the response buffer. In get_file_all_info(), there was a missing validation check for the client-provided OutputBufferLength before copying the filename into FileName field of the smb2_file_all_info structure. If the filename length exceeds the available buffer space, it could lead to potential buffer overflows or memory corruption during smbConvertToUTF16 conversion. This calculating the actual free buffer size using smb2_calc_max_out_buf_len() and returning -EINVAL if the buffer is insufficient and updating smbConvertToUTF16 to use the actual filename length (clamped by PATH_MAX) to ensure a safe copy operation.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
An out-of-bounds write vulnerability in Linux kernel's ksmbd SMB server allows remote authenticated users to cause memory corruption via a crafted compound request.
Vulnerability
Description
The vulnerability resides in the get_file_all_info() function of the Linux kernel's ksmbd (SMB/CIFS) server. When processing a compound SMB2 request that consists of a QUERY_DIRECTORY command followed by a QUERY_INFO command for FILE_ALL_INFORMATION, the server fails to validate the client-provided OutputBufferLength before copying the filename into the FileName field of the smb2_file_all_info structure. If the first command consumes nearly the entire max_trans_size, the remaining buffer space is insufficient, yet smbConvertToUTF16() is called with PATH_MAX as the length, leading to an out-of-bounds write beyond the response buffer [1][2].
Exploitation
Prerequisites
An attacker must have valid SMB credentials and be able to send crafted compound SMB2 requests to the ksmbd server. The attack requires no special network position beyond access to the SMB share. The bug is triggered when the QUERY_DIRECTORY command uses almost all of the negotiated max_trans_size, leaving inadequate space for the subsequent QUERY_INFO response. The missing check on OutputBufferLength allows the filename copy to exceed the allocated buffer [3].
Impact
Successful exploitation results in memory corruption within the kernel context. This can lead to a denial of service (system crash) or, potentially, arbitrary code execution with kernel privileges. The CVSS v3 score of 8.8 (High) reflects the high impact on confidentiality, integrity, and availability, given the low complexity and network-based attack vector [4].
Mitigation
The fix introduces a validation step using smb2_calc_max_out_buf_len() to compute the actual free buffer size and returns -EINVAL if the buffer is insufficient. Additionally, smbConvertToUTF16() now uses the actual filename length (clamped by PATH_MAX) to ensure a safe copy. Patches have been applied to multiple stable kernel branches; users should update to the latest patched version immediately [1][2][3][4].
AI Insight generated on May 18, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
1Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
7- git.kernel.org/stable/c/358cdaa1f7fbf2712cb4c5f6b59cb9a5c673c5fenvd
- git.kernel.org/stable/c/3a852f9d1c981fb14f6bf4e24999e0ea8088a7d7nvd
- git.kernel.org/stable/c/4cca3eff2099b18672934a39cee70aed835d652cnvd
- git.kernel.org/stable/c/7aec5a769d2356cbf344d85bcfd36de592ac96a5nvd
- git.kernel.org/stable/c/9d7032851d6f5adbe2739601ca456c0ad3b422f0nvd
- git.kernel.org/stable/c/b0cd9725fe2bcc9f37d096b132318a9060373f5dnvd
- git.kernel.org/stable/c/beef2634f81f1c086208191f7228bce1d366493dnvd
News mentions
0No linked articles in our index yet.