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

ksmbd: OOB read regression in smb_check_perm_dacl() ACE-walk loops

Commit d07b26f39246 ("ksmbd: require minimum ACE size in
smb_check_perm_dacl()") introduced a transposed bounds check:

if (offsetof(struct smb_ace, sid) + aces_size < CIFS_SID_BASE_SIZE)

Since offsetof(..sid) is 8 and CIFS_SID_BASE_SIZE is 8, this evaluates
to `aces_size < 0`. Because `aces_size` is always non-negative, this
check becomes dead code and never breaks the loop.

Worse, that commit removed the old 4-byte guard, meaning the loop now
reads `ace->size` (offset 2) even when `aces_size` is 0-3 bytes. This
re-opens a 2-byte heap out-of-bounds (OOB) read past the pntsd allocation
during subsequent SMB2_CREATE operations.

Fix this by properly transposing the comparison to require at least
16 bytes (8-byte offset + 8-byte SID base), matching the correct form
used in smb_inherit_dacl().
Published: 2026-07-19
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is an out‑of‑bounds read in the Linux kernel’s ksmbd component caused by a dead code path in smb_check_perm_dacl() that allows a malicious SMB2_CREATE request to read two bytes past an allocated ACE structure. The read can expose kernel memory contents, potentially leaking sensitive data. The weakness is a classic bounds‑check failure (CWE‑125).

Affected Systems

Any Linux kernel that does not include the patch commit d07b26f39246 is affected. Linux distributions shipping unpatched kernels—regardless of release—remain vulnerable because the commit was applied to ksmbd to correct the bounds check. Users should identify if their running kernel includes the fix or plan to upgrade to a version that incorporates it.

Risk and Exploitability

The CVSS score of 8.1 reflects a high-risk information‑disclosure flaw with a low exploitation probability (EPSS <1%). It is not listed in CISA’s KEV catalog. Based on the CVE description, it is inferred that an attacker only needs network reach to the ksmbd service and can trigger the flaw remotely via a malformed SMB2_CREATE message; privileged access is not required. The attack surface is therefore the SMB port, and the leaked data could aid further compromise.

Generated by OpenCVE AI on August 4, 2026 at 18:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that contains the commit d07b26f39246 that restores the proper bounds check in smb_check_perm_dacl()
  • If ksmbd is not required, stop or disable the service to eliminate the vulnerable code path
  • Restrict network access to the SMB port (445) using firewall rules or network segmentation so that only trusted hosts can reach the ksmbd service

Generated by OpenCVE AI on August 4, 2026 at 18:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Wed, 22 Jul 2026 00:15:00 +0000


Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H'}


Sun, 19 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ksmbd: OOB read regression in smb_check_perm_dacl() ACE-walk loops Commit d07b26f39246 ("ksmbd: require minimum ACE size in smb_check_perm_dacl()") introduced a transposed bounds check: if (offsetof(struct smb_ace, sid) + aces_size < CIFS_SID_BASE_SIZE) Since offsetof(..sid) is 8 and CIFS_SID_BASE_SIZE is 8, this evaluates to `aces_size < 0`. Because `aces_size` is always non-negative, this check becomes dead code and never breaks the loop. Worse, that commit removed the old 4-byte guard, meaning the loop now reads `ace->size` (offset 2) even when `aces_size` is 0-3 bytes. This re-opens a 2-byte heap out-of-bounds (OOB) read past the pntsd allocation during subsequent SMB2_CREATE operations. Fix this by properly transposing the comparison to require at least 16 bytes (8-byte offset + 8-byte SID base), matching the correct form used in smb_inherit_dacl().
Title ksmbd: OOB read regression in smb_check_perm_dacl() ACE-walk loops
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-05T12:37:02.949Z

Reserved: 2026-07-19T07:54:57.020Z

Link: CVE-2026-63909

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity :

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-63909 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T18:30:12Z

Weaknesses