ZeroHour

CVE-2026-89634

mass

Integer (ALIGN) overflow in Linux kernel SMB client symlink parsing enables OOB read and hang

CVSS 3.1
9.1 critical
EPSS
Published
()
Modified
AI analysis

CVE-2026-89634 is an integer-overflow flaw in the Linux kernel's SMB/CIFS client, in the symlink_data() error-context parsing loop. When a client mounts an SMB share and parses a symlink reparse point, a malicious or compromised SMB server can supply an ErrorDataLength near UINT32_MAX (e.g. 0xFFFFFFF9); ALIGN() then wraps to 0, defeating the bounds check so the loop advances zero bytes and reads stale/out-of-bounds buffer data. An attacker controlling an SMB server that a victim mounts gains disclosure of kernel memory (CVSS confidentiality: high) and can hang or crash the client (availability: high) with no privileges or user interaction required. The bug also undermines the earlier fix in commit 7d9a7f1f96cd, so kernels carrying that incomplete patch remain vulnerable. There is no public PoC, it is not in CISA KEV, and no exploitation is known to date.

What to do: Apply a kernel update containing the fix (verify your distro's kernel includes the corrected bounds check in symlink_data()) and reboot to load it. Until patched, restrict or avoid mounting SMB shares from untrusted or external servers, review automount/NAS configurations that connect to semi-trusted shares, and monitor for hung cifs mount processes or unexpected client crashes as indicators.

Affected
Linux kernel (CIFS/SMB client, fs/smb/client)
Estimated exposure
masspotentially tens of millions of Linux systems that mount SMB/CIFS shares, out of >1 billion Linux kernel deployments overall — The Linux kernel underpins the majority of servers, cloud instances, and Android devices, but this flaw is only reachable through the CIFS client path when mounting a remote SMB share, so the realistically exposed population is the…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix ALIGN() overflow in symlink_data() error context loop The check added by commit 7d9a7f1f96cd ("smb/client: fix possible infinite loop and oob read in symlink_data()") compared the post-ALIGN length against the remaining buffer, but ALIGN() itself can overflow: for ErrorDataLength near UINT32_MAX (e.g. 0xFFFFFFF9), ALIGN(x, 8) wraps to 0, so the subsequent bounds check passes, and the loop advances by zero bytes leaving 'p' pointing into stale data. Fix by checking the raw ErrorDataLength against the remaining space before applying ALIGN(), then checking again after. Since raw_len is bounded by the buffer, raw_len + 7 cannot overflow, so the second check is an exact post-alignment bounds guard.

Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

In the news

No ingested article mentions this CVE yet.