cveboard RSS feed

CVE-2026-97559

CVE.org · Published

Historical CVEsJSONAI instructions

Record status
Published
Identifier year (not publication year)
2026
Source publication
Source updated
Imported by cveboard
Source snapshot
cve_2026-10-24_midnight_baseline ·

Plain text

CNA source text (English)

smb: client: fail DACL rewrite when the new DACL exceeds 64K

In the Linux kernel, the following vulnerability has been resolved: smb: client: fail DACL rewrite when the new DACL exceeds 64K replace_sids_and_copy_aces() and set_chmod_dacl() accumulate the size of the DACL they build in a u16. That accumulator can wrap. validate_dacl() caps num_aces at (dacl_size - sizeof(struct smb_acl)) / 20, i.e. 3276 for a maximally sized DACL, while each rewritten ACE can grow to sizeof(struct smb_ace) (76 bytes) once its SID is replaced with one carrying SID_MAX_SUB_AUTHORITIES sub-authorities. The worst case is therefore sizeof(struct smb_acl) + 3276 * 76 = 248984 bytes, far beyond what a u16 can hold. A wraparound is reached with 863 ACEs. After the wraparound, ndacl_ptr->size becomes meaningless and the offset will point anywhere in the ACE array. As a result, we will see corruption of the DACL, which then gets sent to the server. This is not an out-of-bounds write as the allocation now covers the worst-case expansion, so writes will always go into the buffer. Adjust the code to use a u32 internally and return -EOVERFLOW in the overflow case. The operation must be refused, because a DACL can only hold 2^16-1 bytes on the wire and larger DACLs cannot be represented. set_chmod_dacl() carries the same pattern and is fixed the same way. It only wraps once the source DACL comes within roughly 380 bytes of the 64K ceiling, but the failure mode is identical.

Scoped product and version facts

Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.

Exploitation unknown; this catalogue does not assess exploitation.

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
unaffected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
f5065508897a922327f32223082325d10b069ebcaffectedgit284877c6189fda1ac3d81771dd8482660a0c7dc1UnavailableNone listed
f5065508897a922327f32223082325d10b069ebcaffectedgitd433376abc47e10870ae732f89c7c1a60b199a0cUnavailableNone listed
f5065508897a922327f32223082325d10b069ebcaffectedgit2ef532a01f44687f5b95001e88247cf05bff9892UnavailableNone listed
f5065508897a922327f32223082325d10b069ebcaffectedgitee13d687d06a6fbb2008625dd560c654231b28e0UnavailableNone listed
f5065508897a922327f32223082325d10b069ebcaffectedgitd05045177a855386bca5e1909e08d06290e6e3b3UnavailableNone listed

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
affected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
5.12affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver5.12UnavailableNone listed
6.6.160unaffectedsemverUnavailable6.6.*None listed
6.12.112unaffectedsemverUnavailable6.12.*None listed
6.18.53unaffectedsemverUnavailable6.18.*None listed
7.2.7unaffectedsemverUnavailable7.2.*None listed
7.3unaffectedoriginal_commit_for_fixUnavailable*None listed