Skip to main content

Linux Kernel ksmbd CVE-2026-64139

| EUVDEUVD-2026-45824 MEDIUM
Memory Leak (CWE-401)
2026-07-19 Linux GHSA-3c28-w5w6-mh56
5.5
CVSS 3.1 · NVD
Share

Severity by source

NVD PRIMARY
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
5.5 MEDIUM

Local vector with low-privilege access required to trigger DACL handling; no confidentiality or integrity impact, only kernel heap exhaustion via the memory leak.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
4.7 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

5
Analysis Generated
Aug 18, 2026 - 12:54 vuln.today
CVSS changed
Aug 18, 2026 - 12:53 NVD
5.5 (MEDIUM)
Patch available
Jul 19, 2026 - 17:03 EUVD
CVE Published
Jul 19, 2026 - 15:40 nvd
MEDIUM 5.5
CVE Published
Jul 19, 2026 - 15:40 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

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.

AnalysisAI

Kernel memory exhaustion via ksmbd's POSIX-to-DACL ACL conversion causes a reliable denial-of-service against Linux SMB servers. Commit 299f962c0b02 introduced check_add_overflow() guards in set_posix_acl_entries_dacl() to prevent u16 DACL size wrap-around, but the resulting break statements bypass the kfree(sid) cleanup calls, leaking one or more struct smb_sid kernel heap allocations each time the overflow check fires. EPSS is 0.18% (8th percentile), no KEV listing exists, and no public exploit code has been identified, but the leak is deterministic and repeatable on every DACL request against a file with sufficient POSIX ACL entries, making memory exhaustion straightforward for any attacker with SMB access to the server.

Technical ContextAI

ksmbd (Kernel SMB Daemon) is the in-kernel SMB3 server introduced in Linux 5.15, distinct from userspace Samba. The vulnerable function set_posix_acl_entries_dacl() translates POSIX filesystem ACL entries into Windows-style DACL security descriptors sent in SMB responses. For each ACE (Access Control Entry), the function allocates a struct smb_sid via kmalloc_obj(). The prior fix (commit 299f962c0b02) added check_add_overflow() guards to prevent the u16 accumulated DACL byte count from wrapping past 65535; however, the break exits that enforce this limit skip the corresponding kfree(sid) calls at the tail of each loop iteration. CWE-401 (Missing Release of Memory after Effective Lifetime) precisely describes this pattern: the resource is allocated, a guard fires, control exits before the free, and the allocation is permanently leaked within the running kernel. Affected CPE: cpe:2.3:a:linux:linux:*:*:*:*:*:*:*:*.

RemediationAI

Upgrade to a patched Linux stable kernel release: 6.6.142 or later (6.6 branch), 6.12.92 or later (6.12 branch), 7.0.11 or later (7.0 branch), or 6.18.34 or later (6.18 branch). Upstream fix commits are published at git.kernel.org - representative patches include eced48cb08f07393a5ea770fdd1026452883c3ad, 9d378e17c864da08c3a4df41dae92cfa6468b00a, af92ee994cc7f7e83a41c2025f32257a2f82a7ef, and related stable backports. Ubuntu administrators should apply USN-8593-1. If an immediate kernel update is operationally infeasible, the most effective compensating control is to unload ksmbd entirely (modprobe -r ksmbd or adding it to /etc/modprobe.d/blacklist.conf) - this eliminates the attack surface completely but terminates all ksmbd-served SMB shares. Alternatively, blocking inbound TCP port 445 at the host firewall (iptables -A INPUT -p tcp --dport 445 -j DROP) limits exposure to network-adjacent attackers, though local attackers with shell access can still trigger the leak if ksmbd remains loaded. Restricting which users may set extended POSIX ACLs on ksmbd-shared filesystems (via ACL mount options or filesystem policies) reduces the triggering surface but does not eliminate the vulnerability if pre-existing files already carry sufficient ACL entries.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

Share

CVE-2026-64139 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy