{"api_version":"1","generated_at":"2026-11-07T15:53:40+00:00","cve":"CVE-2026-99272","urls":{"html":"https://cve.report/CVE-2026-99272","api":"https://cve.report/api/cve/CVE-2026-99272.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-99272","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-99272"},"summary":{"title":"smb: client: validate the data area in SMB2_read()","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: validate the data area in SMB2_read()\n\nSMB2_read() copies le32_to_cpu(rsp->DataLength) bytes from\n(char *)rsp + rsp->DataOffset without checking that the range lies\nwithin the response actually received. A READ response with\nDataOffset == 0 makes smb2_get_data_area_len() zero the data length, so\nsmb2_check_message() accepts a frame as short as the fixed response,\nwhile SMB2_read() still uses the server-supplied DataLength, capped only\nby CIFS_MAX_MSGSIZE and the caller's length.\n\nA malicious server can answer the synchronous read used by the\nmfsymlinks (or SFU) symlink parser with an 81-byte READ response\ncarrying DataOffset 0 and DataLength 1067, making the client copy 1067\nbytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to\n16 KiB in the general case).\n\nClamp a zero (or header-overlapping) DataOffset to read_rsp_size, as\nhandle_read_data() does for the asynchronous path, and reject the\nresponse unless DataOffset + DataLength fits within rsp_iov.iov_len.\nThe SMB1 helper was fixed the same way in 5be5bdda5863.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-11-07 14:17:02","updated_at":"2026-11-07 14:17:02"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1","name":"https://git.kernel.org/stable/c/2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/1ba1937de005e261a8858f45bfef5da7458df94c","name":"https://git.kernel.org/stable/c/1ba1937de005e261a8858f45bfef5da7458df94c","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-99272","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99272","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected d8e050398d23ef7c019c96200b80d73f4e5cec0c 1ba1937de005e261a8858f45bfef5da7458df94c git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected d8e050398d23ef7c019c96200b80d73f4e5cec0c 2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 3.7","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 3.7 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3.2 7.3.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.4-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["fs/smb/client/smb2pdu.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"1ba1937de005e261a8858f45bfef5da7458df94c","status":"affected","version":"d8e050398d23ef7c019c96200b80d73f4e5cec0c","versionType":"git"},{"lessThan":"2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1","status":"affected","version":"d8e050398d23ef7c019c96200b80d73f4e5cec0c","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["fs/smb/client/smb2pdu.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"3.7"},{"lessThan":"3.7","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"7.3.*","status":"unaffected","version":"7.3.2","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.4-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3.2","versionStartIncluding":"3.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.4-rc1","versionStartIncluding":"3.7","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: validate the data area in SMB2_read()\n\nSMB2_read() copies le32_to_cpu(rsp->DataLength) bytes from\n(char *)rsp + rsp->DataOffset without checking that the range lies\nwithin the response actually received. A READ response with\nDataOffset == 0 makes smb2_get_data_area_len() zero the data length, so\nsmb2_check_message() accepts a frame as short as the fixed response,\nwhile SMB2_read() still uses the server-supplied DataLength, capped only\nby CIFS_MAX_MSGSIZE and the caller's length.\n\nA malicious server can answer the synchronous read used by the\nmfsymlinks (or SFU) symlink parser with an 81-byte READ response\ncarrying DataOffset 0 and DataLength 1067, making the client copy 1067\nbytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to\n16 KiB in the general case).\n\nClamp a zero (or header-overlapping) DataOffset to read_rsp_size, as\nhandle_read_data() does for the asynchronous path, and reject the\nresponse unless DataOffset + DataLength fits within rsp_iov.iov_len.\nThe SMB1 helper was fixed the same way in 5be5bdda5863."}],"providerMetadata":{"dateUpdated":"2026-11-07T14:08:45.332Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/1ba1937de005e261a8858f45bfef5da7458df94c"},{"url":"https://git.kernel.org/stable/c/2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1"}],"title":"smb: client: validate the data area in SMB2_read()","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-99272","datePublished":"2026-11-07T14:08:45.332Z","dateReserved":"2026-09-25T10:25:14.404Z","dateUpdated":"2026-11-07T14:08:45.332Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-07 14:17:02","lastModifiedDate":"2026-11-07 14:17:02","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"99272","Ordinal":"1","Title":"smb: client: validate the data area in SMB2_read()","CVE":"CVE-2026-99272","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"99272","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: validate the data area in SMB2_read()\n\nSMB2_read() copies le32_to_cpu(rsp->DataLength) bytes from\n(char *)rsp + rsp->DataOffset without checking that the range lies\nwithin the response actually received. A READ response with\nDataOffset == 0 makes smb2_get_data_area_len() zero the data length, so\nsmb2_check_message() accepts a frame as short as the fixed response,\nwhile SMB2_read() still uses the server-supplied DataLength, capped only\nby CIFS_MAX_MSGSIZE and the caller's length.\n\nA malicious server can answer the synchronous read used by the\nmfsymlinks (or SFU) symlink parser with an 81-byte READ response\ncarrying DataOffset 0 and DataLength 1067, making the client copy 1067\nbytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to\n16 KiB in the general case).\n\nClamp a zero (or header-overlapping) DataOffset to read_rsp_size, as\nhandle_read_data() does for the asynchronous path, and reject the\nresponse unless DataOffset + DataLength fits within rsp_iov.iov_len.\nThe SMB1 helper was fixed the same way in 5be5bdda5863.","Type":"Description","Title":"smb: client: validate the data area in SMB2_read()"}]}}}