CVE-2026-31712: ksmbd: require minimum ACE size in smb_check_perm_dacl()
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: require minimum ACE size in smb_check_perm_dacl()
Both ACE-walk loops in smb_check_perm_dacl() only guard against an
under-sized remaining buffer, not against an ACE whose declared
`ace->size` is smaller than the struct it claims to describe:
if (offsetof(struct smb_ace, access_req) > aces_size)
break;
ace_size = le16_to_cpu(ace->size);
if (ace_size > aces_size)
break;
The first check only requires the 4-byte ACE header to be in bounds;
it does not require access_req (4 bytes at offset 4) to be readable.
An attacker who has set a crafted DACL on a file they own can declare
ace->size == 4 with aces_size == 4, pass both checks, and then
granted |= le32_to_cpu(ace->access_req); /* upper loop */
compare_sids(&sid, &ace->sid); /* lower loop */
reads access_req at offset 4 (OOB by up to 4 bytes) and ace->sid at
offset 8 (OOB by up to CIFS_SID_BASE_SIZE + SID_MAX_SUB_AUTHORITIES
* 4 bytes).
Tighten both loops to require
ace_size >= offsetof(struct smb_ace, sid) + CIFS_SID_BASE_SIZE
which is the smallest valid on-wire ACE layout (4-byte header +
4-byte access_req + 8-byte sid base with zero sub-auths). Also
reject ACEs whose sid.num_subauth exceeds SID_MAX_SUB_AUTHORITIES
before letting compare_sids() dereference sub_auth[] entries.
parse_sec_desc() already enforces an equivalent check (lines 441-448);
smb_check_perm_dacl() simply grew weaker validation over time.
Reachability: authenticated SMB client with permission to set an ACL
on a file. On a subsequent CREATE against that file, the kernel
walks the stored DACL via smb_check_perm_dacl() and triggers the
OOB read. Not pre-auth, and the OOB read is not reflected to the
attacker, but KASAN reports and kernel state corruption are
possible.
Security readout for executives and security teams
Plain-English summary
A logged-in SMB user who can change a file’s access-control list may create malformed permission data that the Linux ksmbd server later reads outside its intended memory bounds. This could destabilize or corrupt the kernel. The issue is not reachable before authentication, and the source does not show that exposed memory is returned to the attacker.
Executive priority
Prioritize affected, network-reachable ksmbd servers where customers, tenants, or other less-trusted authenticated users can change ACLs. Expedite testing and kernel updates because successful triggering may affect host availability or kernel integrity. Internet exposure alone is insufficient; authentication and ACL permissions materially constrain risk.
Technical view
smb_check_perm_dacl() insufficiently validates declared ACE sizes and SID sub-authority counts while processing stored DACLs. A malformed ACE can cause out-of-bounds reads of access_req, SID data, or sub_auth entries during a subsequent CREATE request. The correction enforces the minimum on-wire ACE size and rejects excessive SID sub-authorities.
Likely exposure
Exposure is limited to Linux systems using ksmbd on affected kernel releases. An attacker needs valid SMB credentials and permission to set an ACL on a file. Systems not running ksmbd, or where untrusted users cannot modify ACLs, are less likely to be exposed. The supplied data marks releases including 5.15 through 7.1 as affected, but exact range interpretation is incomplete.
Exploitation context
The source describes network reachability with low complexity and low privileges, but requires authentication and ACL-setting permission. A later CREATE request triggers the vulnerable DACL walk. KASAN findings and kernel-state corruption are possible. No reflected information disclosure is described, KEV is false, and the supplied sources provide no evidence of active exploitation.
Researcher notes
The vulnerable parser accepts a four-byte ACE although the smallest valid layout requires a header, access mask, and base SID. Both ACE-walk loops require correction, along with validation of sid.num_subauth before sub_auth dereferences. The bundle does not identify a CWE, proven exploit, or precise fixed-version mapping; use the stable commits and distribution guidance for confirmation.
Mitigation direction
Update to a vendor-supported kernel containing the referenced ksmbd ACE-validation fix.
Confirm distribution advisories and fixed package versions before rollout.
Restrict SMB accounts that can modify file ACLs until patched.
Disable ksmbd where it is unnecessary, following operational change controls.
Validation and detection
Inventory systems running ksmbd and record their kernel and distribution package versions.
Compare installed kernels with vendor advisories and the referenced stable fixes.
Review SMB permissions for accounts allowed to set file ACLs.
After updating, verify the running kernel includes the applicable stable fix.
Monitor kernel logs for ksmbd faults, KASAN reports, or unexplained crashes.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-31712 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
8Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.