CVE-2026-99272 PUBLISHED

smb: client: validate the data area in SMB2_read()

Assigner: Linux
Reserved: 25.09.2026 Published: 07.11.2026 Updated: 07.11.2026

In the Linux kernel, the following vulnerability has been resolved:

smb: client: validate the data area in SMB2_read()

SMB2_read() copies le32_to_cpu(rsp->DataLength) bytes from (char *)rsp + rsp->DataOffset without checking that the range lies within the response actually received. A READ response with DataOffset == 0 makes smb2_get_data_area_len() zero the data length, so smb2_check_message() accepts a frame as short as the fixed response, while SMB2_read() still uses the server-supplied DataLength, capped only by CIFS_MAX_MSGSIZE and the caller's length.

A malicious server can answer the synchronous read used by the mfsymlinks (or SFU) symlink parser with an 81-byte READ response carrying DataOffset 0 and DataLength 1067, making the client copy 1067 bytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to 16 KiB in the general case).

Clamp a zero (or header-overlapping) DataOffset to read_rsp_size, as handle_read_data() does for the asynchronous path, and reject the response unless DataOffset + DataLength fits within rsp_iov.iov_len. The SMB1 helper was fixed the same way in 5be5bdda5863.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from d8e050398d23ef7c019c96200b80d73f4e5cec0c to 1ba1937de005e261a8858f45bfef5da7458df94c (excl.)
  • affected from d8e050398d23ef7c019c96200b80d73f4e5cec0c to 2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.7 is affected
  • unaffected from 0 to 3.7 (excl.)
  • unaffected from 7.3.2 to 7.3.* (incl.)
  • unaffected from 7.4-rc1 to * (incl.)

References