KernelScan.io

CRITICAL Introduced in 4.19

smb CompoundPDU OOB

CVE-2026-98167

CVSS 9.1 / 10.0 KernelScan AI

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

01

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix server->total_read for compound encrypted PDUs In receive_encrypted_standard(), server->total_read is left at the full decrypted frame size when walking sub-PDUs of a compound encrypted frame. As a result, cifs_handle_standard() passes this full size to smb2_check_message(), causing the PDU length guards to incorrectly validate the entire compound frame instead of the current sub-PDU. This allows truncated non-last sub-PDUs to bypass length validation, leading to out-of-bounds reads in smb2_get_data_area_len(). Fix this by setting server->total_read to the true length of the current sub-PDU: next_cmd for non-last sub-PDUs, and the remaining pdu_length for the last one.

02

Engine v0.7.0

Risk summary

A Linux SMB client processing compound encrypted responses from a server fails to validate individual sub-PDU lengths correctly, allowing a malicious or compromised SMB server to trigger out-of-bounds reads in kernel memory. This can leak sensitive kernel data or crash the system. Any system that mounts SMB/CIFS shares and connects to an attacker-controlled or MITM'd server is at risk.

Affectedfs/smb/client/smb2ops.c (smb client)

Vulnerability analysis

When the SMB client receives a compound encrypted response from a server, it walks through the individual sub-PDUs but leaves the total read size set to the full decrypted frame length rather than the current sub-PDU's length. This causes the PDU length validation to check against the entire compound frame instead of the individual sub-PDU, so a truncated non-last sub-PDU can pass validation and trigger out-of-bounds reads when the client later parses the data area. The fix sets the total read size to the correct sub-PDU length — the NextCommand offset for non-last sub-PDUs and the remaining buffer length for the last one — before validation occurs. The attacker is a malicious or man-in-the-middle SMB server sending a crafted compound encrypted response; the client must have an active encrypted SMB3 connection to that server, and no privileges on the client are required beyond the ability to access the mounted share.

03

BranchIntroducedFixed inPatch commit
6.14.196.1.1898703539d22fd
6.64.196.6.158e78fc1d240b2
6.124.196.12.112a46eb242e9ee
6.184.196.18.54ebb8a075fdc7
7.24.197.2.8282b72f9a7ef
mainline4.197.3-rc4f73726b83e47