KernelScan.io

HIGH

smb NFS Mode OOB

CVE-2026-43350

CVSS 7.6 / 10.0 NVD

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

KernelScan AI4.2MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: smb: client: require a full NFS mode SID before reading mode bits parse_dacl() treats an ACE SID matching sid_unix_NFS_mode as an NFS mode SID and reads sid.sub_auth[2] to recover the mode bits. That assumes the ACE carries three subauthorities, but compare_sids() only compares min(a, b) subauthorities. A malicious server can return an ACE with num_subauth = 2 and sub_auth[] = {88, 3}, which still matches sid_unix_NFS_mode and then drives the sub_auth[2] read four bytes past the end of the ACE. Require num_subauth >= 3 before treating the ACE as an NFS mode SID. This keeps the fix local to the special-SID mode path without changing compare_sids() semantics for the rest of cifsacl.

02

Engine v0.2.0

Risk summary

A malicious SMB server can trigger an out-of-bounds read in the Linux SMB client when processing NFS mode SIDs in ACEs. This allows the server to leak up to 4 bytes of adjacent kernel heap memory beyond the ACE structure. Systems mounting SMB shares with the 'modefromsid' option are vulnerable to limited information disclosure from compromised or malicious SMB servers.

Affectedfs/smb/client/cifsacl.c (SMB client)

Vulnerability analysis

The vulnerability occurs in parse_dacl() when processing Access Control Entries (ACEs) with NFS mode SIDs. The code assumes that an ACE matching sid_unix_NFS_mode contains at least 3 subauthorities and directly accesses sid.sub_auth[2] to extract mode bits. However, compare_sids() only compares min(a->num_subauth, b->num_subauth) elements, so a malicious server can craft an ACE with num_subauth=2 that still matches the NFS mode SID pattern but causes an out-of-bounds read when accessing sub_auth[2]. The fix adds a bounds check requiring num_subauth >= 3 before treating the SID as an NFS mode SID, preventing the OOB access while preserving the existing compare_sids() semantics.

03

BranchFixed inPatch commit
6.16.1.1758bd4cad3f458
6.126.12.84c8eef12af1cc
6.186.18.2538a69f08ee82
6.66.6.136b53b8e98c233
7.07.0.2f8488c07bea2
mainline7.1-rc12757ad3e4b6f