CVE-2026-89632
High · 8.2CVSS
8.2
EPSS
0.6%
Published
Sep 11, 2026
CISA due date
—
Cloudanix analysis
A bug in the way Linux reads certain responses from file servers can let a malicious server crash the computer or peek at a little memory when users browse shared folders.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- OS kernel
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The smb client reparse_buf_ptr() function reads buf->ReparseDataLength at offset 4 before validating that the received count covers at least sizeof(struct reparse_data_buffer), allowing an out-of-bounds read when a server supplies OutputCount smaller than 6 bytes.
Why it matters to the business
Systems mounting SMB shares from untrusted servers may experience kernel crashes or limited memory disclosure, disrupting file access and requiring emergency patching across fleets.
How an attack unfolds
An attacker hosts a malicious SMB server that replies to reparse-point queries with OutputCount less than the fixed header size; a vulnerable client performing directory operations triggers the premature read, resulting in an out-of-bounds access that can crash the kernel or leak adjacent memory.
How to fix it
Update the Linux kernel to a version containing the split validation check that verifies count >= sizeof(*buf) before accessing ReparseDataLength; apply the vendor-supplied patch that enforces the length check prior to the field read.
How to confirm the fix worked
Confirm the presence of the two-stage length check (count >= sizeof(struct reparse_data_buffer) followed by the data-region check) in the reparse_buf_ptr() function of the running kernel source or binary; test against a server returning OutputCount < 6.
Typical attack path
- attacker positions a controlled SMB server on the network
- victim client initiates a mount or directory traversal that triggers reparse handling
- server returns a small OutputCount in the reparse response
- client calls reparse_buf_ptr() which dereferences the undersized buffer
- kernel performs out-of-bounds read leading to panic or information leak
How to detect it
Review kernel logs for oops or panic entries referencing reparse_buf_ptr or reparse_data_buffer during SMB operations; correlate with network traces showing SMB responses containing OutputCount values under 6 bytes to unpatched clients.
What your security team should do
- Prioritize kernel upgrades on all systems that mount SMB shares from external or untrusted servers
- Monitor EPSS trend and schedule patching within normal change windows given the increasing exploit probability
- Harden SMB client configurations to restrict connections to trusted servers until patches are deployed
The record
In the Linux kernel, the following vulnerability has been resolved: smb: client: fix use-before-check of ReparseDataLength in reparse_buf_ptr() reparse_buf_ptr() reads buf->ReparseDataLength before checking that count covers the full fixed header: buf = (struct reparse_data_buffer *)((u8 *)io + off); len = sizeof(*buf); /* 8 bytes */ rdlen = le16_to_cpu(buf->ReparseDataLength); /* offset 4, 2 bytes */ if (count < len || count < rdlen + len) /* check comes after */ struct reparse_data_buffer has ReparseDataLength at offset 4. If a server returns OutputCount < 6, the read at offset 4-5 reaches past the end of the received data. The off+count bounds against iov_len were already validated, but that does not protect against count being smaller than sizeof(*buf). Split the check: verify count >= sizeof(*buf) before reading ReparseDataLength, then verify count covers the data region.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|