Skip to main content

Linux Kernel ksmbd EUVDEUVD-2026-45512

| CVE-2026-53390 HIGH
Out-of-bounds Read (CWE-125)
2026-07-19 Linux GHSA-xg8q-rr62-82pp
8.1
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
vuln.today AI
7.1 HIGH

Authenticated remote client (PR:L) on ksmbd ACL shares; OOB bytes only feed an internal SID compare so C:L, no integrity impact, kernel crash gives A:H.

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

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

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

Lifecycle Timeline

5
Analysis Generated
Jul 20, 2026 - 18:07 vuln.today
CVSS changed
Jul 20, 2026 - 15:22 NVD
8.1 (HIGH)
Patch available
Jul 19, 2026 - 14:17 EUVD
CVE Published
Jul 19, 2026 - 12:01 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 19, 2026 - 12:01 cve.org
HIGH 8.1

DescriptionCVE.org

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

ksmbd: fix out-of-bounds read in smb_check_perm_dacl()

The permission-check ACE walk in smb_check_perm_dacl() validates the ACE header size and caps sid.num_subauth at SID_MAX_SUB_AUTHORITIES, but it never checks that ace->size is actually large enough to contain num_subauth sub-authorities before compare_sids() dereferences them.

CIFS_SID_BASE_SIZE covers the SID header up to but excluding the sub_auth[] array, and offsetof(struct smb_ace, sid) is the ACE header, so the existing guards only guarantee the 8-byte SID base, i.e. zero sub-authorities. compare_sids() then reads ace->sid.sub_auth[i] for i < min(local_sid->num_subauth, ace->sid.num_subauth). The local comparison SIDs (sid_everyone, sid_unix_NFS_mode, and the id_to_sid() result) always have at least one sub-authority, and an attacker controls the ACE revision and authority bytes (which lie within the in-bounds SID base), so they can match one of those SIDs and force the sub_auth read.

A crafted ACE with size == 16 and num_subauth >= 1 placed at the tail of the security descriptor therefore causes a heap out-of-bounds read of up to SID_MAX_SUB_AUTHORITIES * sizeof(__le32) bytes past the pntsd allocation. The security descriptor is loaded by ksmbd_vfs_get_sd_xattr() into a buffer sized exactly to the on-disk data (kzalloc(sd_size) in ndr_decode_v4_ntacl()), so the read lands past the allocation. The malformed descriptor can be stored verbatim via SMB2_SET_INFO (the DACL is not normalised before being written to the security.NTACL xattr) and the read fires on a subsequent SMB2_CREATE access check, making this reachable by an authenticated client on a share that uses ACL xattrs.

Add the missing num_subauth-versus-ace_size check, mirroring the identical guards already present in the sibling parsers parse_dacl() and smb_inherit_dacl().

AnalysisAI

Heap out-of-bounds read in the Linux kernel's in-kernel SMB server (ksmbd) lets an authenticated SMB client leak kernel heap memory or crash the server on shares that use ACL xattrs. The flaw lives in smb_check_perm_dacl(), which validates an ACE header and caps sub-authority count but never confirms the ACE is large enough to hold those sub-authorities before compare_sids() dereferences them. There is no public exploit identified at time of analysis, and EPSS is low (0.17%, 7th percentile), consistent with a memory-disclosure/DoS bug rather than a mass-exploited RCE.

Technical ContextAI

ksmbd is the kernel-space CIFS/SMB3 server merged into mainline Linux, an alternative to userspace Samba. Windows-style security descriptors are stored per-file in the security.NTACL xattr and decoded by ndr_decode_v4_ntacl() into a buffer sized exactly to the on-disk data via kzalloc(sd_size). The DACL walk in smb_check_perm_dacl() checks the ACE header size and clamps sid.num_subauth to SID_MAX_SUB_AUTHORITIES, but CIFS_SID_BASE_SIZE only covers the 8-byte SID base (zero sub-authorities). compare_sids() then reads ace->sid.sub_auth[i] up to min(local_sid->num_subauth, ace->sid.num_subauth); because the local comparison SIDs (sid_everyone, sid_unix_NFS_mode, id_to_sid() result) always carry at least one sub-authority and the attacker controls the in-bounds revision/authority bytes to force a SID match, the loop reads past the allocation. This is a classic CWE-125 out-of-bounds read (the input lists CWE as N/A and tags it 'Buffer Overflow'); the fix adds the missing num_subauth-versus-ace_size guard already present in the sibling parsers parse_dacl() and smb_inherit_dacl().

RemediationAI

Vendor-released patch: upgrade to the fixed stable kernel for your series - 6.1.177, 6.6.144, 6.12.95, 6.18.38, 7.1.3, or 7.2-rc1 (or later), which add the missing num_subauth-versus-ace_size bounds check in smb_check_perm_dacl(). The stable commits are at https://git.kernel.org/stable/c/988c93d3bba066d8669143e6ec30bb2be9608d53 and its siblings listed in the advisory. If you cannot patch immediately, the most effective compensating control is to stop using ksmbd where feasible - unload/disable the ksmbd module and serve SMB via userspace Samba instead, which removes the vulnerable code path entirely (trade-off: operational change and possible performance difference). Where ksmbd must stay, avoid or disable ACL-xattr-backed shares so security.NTACL descriptors are not parsed on access checks (trade-off: loses Windows-style ACL semantics), and restrict share access to trusted authenticated users while blocking SMB ports (139/445) from untrusted networks to shrink the reachable population.

Vendor StatusVendor

SUSE

Severity: Important
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

EUVD-2026-45512 vulnerability details – vuln.today

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