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

ksmbd: restore DACL size on check_add_overflow() to avoid malformed ACL

check_add_overflow() unconditionally writes the truncated sum into *d
even on overflow, per its contract in include/linux/overflow.h.
The four check_add_overflow() guards in set_posix_acl_entries_dacl()
and set_ntacl_dacl() break out of the ACE-building loops on overflow,
but the truncated *size is then consumed downstream at the end of
set_ntacl_dacl():

pndacl->size = cpu_to_le16(le16_to_cpu(pndacl->size) + size);

This produces an on-wire NT ACL whose pndacl->size under-reports the
bytes actually written by the preceding fill_ace_for_sid()/memcpy()
calls, yielding a malformed ACL that can trigger out-of-bounds reads
when re-parsed by clients or ksmbd itself.

Restore *size to its pre-addition value on each overflow branch (via
`*size -= ace_sz` / `size -= nt_ace_size`) so that after the break,
*size once again holds the cumulative size of the successfully-written
ACEs. The committed ACL is then truncated-but-self-consistent rather
than malformed.

The ksmbd DACL builders are the only check_add_overflow() sites found
where an overflow path breaks out of a loop and the destination value
is consumed afterward. The other nearby break-style cases either
return -EINVAL on overflow (transport_ipc.c) or break without
consuming the overflowed destination value afterward (buildid.c).
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel code that builds NT ACLs in the ksmbd service mismanages the size field when an integer overflow occurs. The helper function check_add_overflow writes the truncated sum into the destination even on overflow, and the surrounding loop breaks without restoring the correct accumulated size. The subsequent code then stores this incorrect size into the ACL structure, producing a malformed ACL whose size field under‑reports the number of bytes actually written. When such an ACL is parsed by a client or by ksmbd itself, the size mismatch can lead to out‑of‑bounds reads and memory corruption, potentially resulting in a denial of service.

Affected Systems

The issue exists in the Linux kernel, as indicated by the CNA vendor/product entry Linux:Linux. No specific kernel version is listed in the data, so any kernel release that incorporates the ksmbd ACL code prior to the commit that restores the size on overflow is potentially affected. The fix is referenced by commit hashes such as 0bf38372821b1526f31538a7d9811844c55c7f38.

Risk and Exploitability

No EPSS score is available and the vulnerability is not in CISA’s KEV list, indicating that there is limited public exploitation evidence at the time of this assessment. The CVSS score is not provided, but the flaw involves an integer overflow that directly corrupts a size field used during network traffic parsing. Attackers would need to send crafted SMB packets containing a malformed ACL to a ksmbd service or to a client that parses Windows ACLs. While the exact likelihood of successful exploitation is uncertain, the potential for memory corruption and denial of service makes the risk significant, especially for unpatched systems exposed to SMB environments.

Generated by OpenCVE AI on August 10, 2026 at 14:12 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a release that incorporates the ksmbd fix referenced by commit 0bf38372821b1526f31538a7d9811844c55c7f38 or later.
  • If upgrading immediately is not possible, restrict SMBv2/v3 traffic from untrusted networks or isolate the affected hosts behind a firewall that blocks SMB traffic.
  • Monitor kernel logs for abnormal SMB parsing errors or out‑of‑bounds reads; consider disabling ksmbd or broader SMB services on critical systems until a reliable patch is available.

Generated by OpenCVE AI on August 10, 2026 at 14:12 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ksmbd: restore DACL size on check_add_overflow() to avoid malformed ACL check_add_overflow() unconditionally writes the truncated sum into *d even on overflow, per its contract in include/linux/overflow.h. The four check_add_overflow() guards in set_posix_acl_entries_dacl() and set_ntacl_dacl() break out of the ACE-building loops on overflow, but the truncated *size is then consumed downstream at the end of set_ntacl_dacl(): pndacl->size = cpu_to_le16(le16_to_cpu(pndacl->size) + size); This produces an on-wire NT ACL whose pndacl->size under-reports the bytes actually written by the preceding fill_ace_for_sid()/memcpy() calls, yielding a malformed ACL that can trigger out-of-bounds reads when re-parsed by clients or ksmbd itself. Restore *size to its pre-addition value on each overflow branch (via `*size -= ace_sz` / `size -= nt_ace_size`) so that after the break, *size once again holds the cumulative size of the successfully-written ACEs. The committed ACL is then truncated-but-self-consistent rather than malformed. The ksmbd DACL builders are the only check_add_overflow() sites found where an overflow path breaks out of a loop and the destination value is consumed afterward. The other nearby break-style cases either return -EINVAL on overflow (transport_ipc.c) or break without consuming the overflowed destination value afterward (buildid.c).
Title ksmbd: restore DACL size on check_add_overflow() to avoid malformed ACL
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-10T11:58:13.940Z

Reserved: 2026-07-30T09:28:09.368Z

Link: CVE-2026-68099

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T14:15:03Z

Weaknesses

No weakness.