LiveActive security incident?Get immediate response
CVE Record

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.

HighCVSS 8.3Not KEV-listedUpdated
Glexia's TakeAutomated analysishigh

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.
Prepared
Confidence
high
Sources
9

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.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
High
CVSS
8.3 (3.1)
Known Exploited
No
Published

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

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

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.

ScoreVersionSeverityVectorExploitImpactSource
8.3CVSS 3.1HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H2.85.5Linux

Vulnerability scoring details

Base CVSS 3.1 score

8.3High
CVSS 3.1 vector shape for CVE-2026-31712Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

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

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinuxe2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9, e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9, e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9, e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9, e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9, e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9, e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9unaffected
LinuxLinux5.15, 0, 5.15.210, 6.1.176, 6.6.140, 6.12.84, 6.18.25, 7.0.2, 7.1affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.