All vulnerabilities
CVE-2026-97555

Linux: smb: client: fix heap overflow in DACL owner/group rewrite

Linux LinuxOperating systems
CVSS
8.8High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.52%Chance of exploitation activity in the next 30 days, higher than 43% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in7fa84c9ca690643f429ae2709584a47e74b572c9Also 2a9aee9ef5622d58d8aafaa3263b3ffe70e2d9dd, 0ee150794c75bcd0be0e24ff3394f433cbae18ccCVE List
Published25 Sep 2026Updated 19 Oct 2026CVE List

What fixes it

  • 7fa84c9ca690643f429ae2709584a47e74b572c9LinuxCVE List
  • 2a9aee9ef5622d58d8aafaa3263b3ffe70e2d9ddLinuxCVE List
  • 0ee150794c75bcd0be0e24ff3394f433cbae18ccLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

In the Linux kernel, the following vulnerability has been resolved:

smb: client: fix heap overflow in DACL owner/group rewrite

When id_mode_to_cifs_acl rewrites an existing DACL, it allocates a buffer sized according to the on-disk DACL length reported by dacl_ptr->size. However, replace_sids_and_copy_aces may rewrite each ACE with a new owner/group SID obtained from the cifs.idmap upcall. Those SIDs can have up to SID_MAX_SUB_AUTHORITIES (15) sub-authorities, making each ACE up to 76 bytes (sizeof(struct smb_ace)).

If the original DACL contains short SIDs (e.g., 1 sub-authority) while the replacement SIDs are long, the rewritten ACEs overflow the allocation.

Fix this by always budgeting for worst-case SID expansion: allocate sizeof(struct smb_acl) plus num_aces * sizeof(struct smb_ace), which covers the smb_acl header and room for every ACE at maximum SID size. This replaces the previous split logic that used dacl_ptr->size for cifsacl mounts but num_aces * sizeof(struct smb_ace) for mode_from_sid mounts: both paths can trigger the same rewrite and need the same headroom.

KASAN reports this as: BUG: KASAN: slab-out-of-bounds in build_sec_desc+0x1e8a/0x2680 [cifs] Write of size 4 at addr ffff8881a5e25374 by task chown/5298 ... The buggy address is located 0 bytes to the right of allocated 884-byte region [ffff8881a5e25000, ffff8881a5e25374)

Text from CVE List

Affected versions 12

  • Linuxaffected: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 before d5cea6766ae1868a51c7d17d77d065b4f55c587fCVE List
  • Linuxaffected: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 before fb736ab4fb8c4fdb8b2f9ccd3a62e03d11549ca1CVE List
  • Linuxaffected: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 before 7fa84c9ca690643f429ae2709584a47e74b572c9CVE List
  • Linuxaffected: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 before 2a9aee9ef5622d58d8aafaa3263b3ffe70e2d9ddCVE List
  • Linuxaffected: bc3e9dd9d104ca1b75644eab87b38ce8a924aef4 before 0ee150794c75bcd0be0e24ff3394f433cbae18ccCVE List
  • Linuxaffected: 5.12CVE List
  • Linuxunaffected: all versions before 5.12CVE List
  • Linuxunaffected: 6.6.158 through 6.6.*CVE List
  • Linuxunaffected: 6.12.111 through 6.12.*CVE List
  • Linuxunaffected: 6.18.53 through 6.18.*CVE List
  • Linuxunaffected: 7.2.7 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 5