CVE-2026-64139

ksmbd: fix SID memory leak in set_posix_acl_entries_dacl() on overflow

MEDIUM
5.5
CVSS Score
Published: July 19, 2026 at 03:40 PM UTC
Updated: August 23, 2026 at 01:26 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix SID memory leak in set_posix_acl_entries_dacl() on overflow Commit 299f962c0b02 ("ksmbd: use check_add_overflow() to prevent u16 DACL size overflow") added check_add_overflow() guards that break out of the ACE-building loops in set_posix_acl_entries_dacl() when the accumulated DACL size would wrap past 65535. However, each iteration allocates a struct smb_sid via kmalloc_obj() at the top of the loop and relies on the kfree(sid) call at the end of the loop body (the 'pass_same_sid' label in the first loop, and the explicit kfree at the tail of the second loop) to release it. The newly introduced 'break' statements bypass those kfree() calls, leaking the sid buffer every time an overflow is detected. A malicious or malformed file with enough POSIX ACL entries to trip the overflow check will leak one or more struct smb_sid allocations on every request that touches the file's DACL, providing a trivial kernel memory exhaustion vector. Free sid before breaking out of the loops to plug the leak.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.1.175 ≤ v < 6.1.1846.1.175 ≤ v < 6.26.12.84 ≤ v < 6.12.926.18.25 ≤ v < 6.18.346.6.136 ≤ v < 6.6.1427.0.2 ≤ v < 7.0.11299f962c0b02d048fb45d248b4da493d03f3175d41e53a773db6342ac9a689ee5ba635c31744c9f05e7b8f3c539d69b2ed5f2408e2f75e68ce7eef436.1.1756.12.846.18.256.6.1367.0.27.1 rc17.1 rc27.1 rc37.1 rc48d5729350b236896f51379588d9a690b7fafb8dbe1955a94b6f17f4b058afa955a6f187eb3ed7615ef7902be3f215b6bf7babe4dc9dd9a7d57dad7a7
Vendor states this is fixed in 0e198f09cb2a554c04de0fea4e790f1250a943ca (fixed)
Vendor states this is fixed in 519fb0a42ce5d7e46935577309fb282a5f2c6ea3 (fixed)
Vendor states this is fixed in 9b0a8985b419a71ee1cc9c0cc6a9e1bb7815a2c5 (fixed)
Vendor states this is fixed in 9d378e17c864da08c3a4df41dae92cfa6468b00a (fixed)
Vendor states this is fixed in af92ee994cc7f7e83a41c2025f32257a2f82a7ef (fixed)
Vendor states this is fixed in eced48cb08f07393a5ea770fdd1026452883c3ad (fixed)
Affected range stops below 6.1.184, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.12.92, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.18.34, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.2, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.6.142, so it looks safe — our inference, not a vendor statement
Affected range stops below 7.0.11, so it looks safe — our inference, not a vendor statement

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-401

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card