Skip to main content
VulnerabilityPublished Updated

CVE-2026-90153: Linux kernel · ksmbd: bound smb_check_perm_dacl() ACE walks by DACL size

Affects Linux kernelSource CVE Database V5

0
Compare

Not known to be exploited · CVSS 8.1 High · fixed in a2051ffe452afad52f580b85a3fd8851933b1e7c : patch Linux kernel soon.

Data as of 30 Oct 2026, 12:49 UTC

CVSS 3.1 base score
8.1High
How severe the flaw is on the 0–10 CVSS scale.

Thin evidence

One scorer or none
CVSS scores by source
CNA (Linux)CVSS 3.18.1
Patch
Available – fixed in a2051ffe452afad52f580b85a3fd8851933b1e7c, a29f57a14c939586d84d7fd6a029bd1fd170098f, a4a307d149327dad5fb25187e1b03cebd1b04de6 +6
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 17 Sep 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade to a fixed release listed under Affected software.

Affected software

ProductAffectedFixed in
LinuxLinuxAffected
  • >=5.15.62 <5.16
  • >=5.18.18 <5.19
  • >=5.19.2 <5.20
Fixed in
  • a2051ffe452afad52f580b85a3fd8851933b1e7c
  • a29f57a14c939586d84d7fd6a029bd1fd170098f
  • a4a307d149327dad5fb25187e1b03cebd1b04de6
  • 930dcdd888eabf166589e020dcbf6d15b5e13305
  • 79decd88dd3f0d42e7fb0689b1a7853bfa302459
  • 8e4f75e979c1d9a51b0a48ac33d0cfd5f039ec67
  • 5.20
  • 5.19
  • 5.16
LinuxLinuxAffected
  • =6.0
Fixed in–

Description

In the Linux kernel, the following vulnerability has been resolved: ksmbd: bound smb_check_perm_dacl() ACE walks by DACL size smb_check_perm_dacl() validates that the DACL fits inside the NT security descriptor, but then bounds its two ACE walks by the remaining NTSD length (acl_size) rather than the DACL's declared size (pdacl_size). When pdacl->size is smaller than the trailing NTSD buffer, bytes after the declared DACL boundary - still inside the stored security descriptor - are parsed as ACEs during access checks. A crafted DACL can place an access-granting ACE beyond pdacl->size, and the current code accepts it during SMB2_CREATE access validation, while parse_dacl() and smb_inherit_dacl() stop at pdacl_size. Bound both ACE walks by pdacl_size to match the DACL boundary semantics used elsewhere in the server. Validation: - semantic KUnit harness shows the post-boundary ACE is selected before the fix and rejected (EACCES) after it - linux master (7.2-rc6), x86_64

References

Community reviews

Loading reviews…