CVE-2026-89497
High · 7.8CVSS
7.8
EPSS
0.1%
Published
Sep 11, 2026
CISA due date
—
Cloudanix analysis
A bug in a Linux storage component can let someone who already has an account on a computer crash it or seize full control by feeding it a malformed debug setting.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Buffer Overflow
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap buffer overflow in the Linux kernel OrangeFS client-debug mask parser. orangefs_prepare_cdm_array() sizes each keyword buffer with strcspn(), which does not skip leading whitespace, then parses the same token with sscanf %s, which does. A debug entry that starts with a space can be allocated as an empty keyword while the subsequent copy writes a non-empty token past the end of the heap buffer, corrupting kernel memory with high impact to confidentiality, integrity, and availability.
Why it matters to the business
A local user on a host that uses OrangeFS can crash the kernel or, if the heap corruption is converted into code execution, take full control of the machine and any services on it. This is most relevant to HPC and research storage environments that actually load OrangeFS; hosts without the module are not exposed. Exploit maturity is none, EPSS is very low and flat (~0.13% over 30 days), and the issue is not in CISA KEV and has no ransomware association, so mass opportunistic risk is currently limited. Kernel memory corruption still warrants timely patching on OrangeFS systems because a successful exploit is a complete host compromise.
How an attack unfolds
An attacker who already has a low-privilege local account on a Linux system with the OrangeFS kernel client loaded supplies a client debug-mask string that begins with whitespace through the OrangeFS debug control interface. Length calculation treats the leading space as an empty keyword and allocates a too-small buffer, while parsing copies the real token off the end of that buffer. The resulting kernel heap overflow can panic the host or, with additional heap manipulation skill, be turned into privilege escalation to kernel/root. No public exploit, named threat actor, or ransomware campaign is associated with this issue.
How to fix it
Apply the upstream Linux kernel fix that skips leading spaces before computing client debug keyword length in orangefs_prepare_cdm_array() so the allocation matches what sscanf() parses. Install the distro or vendor kernel package that includes this OrangeFS change; no specific fixed version numbers were published with this advisory input, so use the vendor CVE tracker or kernel changelog as the source of truth. If OrangeFS is not required, unload and blacklist the orangefs module and do not mount OrangeFS to remove the attack surface. Limit write access to OrangeFS debugfs/sysfs debug-mask interfaces to trusted administrators.
How to confirm the fix worked
Confirm the running kernel (uname, distro package changelog, or stable-tree commit list) includes CVE-2026-89497 or the OrangeFS change described as skipping leading spaces before parsing client debug masks. Verify whether orangefs is loaded (lsmod) and whether OrangeFS filesystems are mounted so you can prioritize exposed hosts. After patching, confirm debug keyword parsing is built from the fixed source and that unprivileged users cannot write OrangeFS debug-mask controls. Re-scan kernel package inventory against vendor advisories until every OrangeFS-capable kernel is on a patched build.
Typical attack path
- Obtain local unprivileged access to a Linux host that has the OrangeFS kernel module loaded
- Reach OrangeFS client-debug mask controls (typically debugfs) writable by that user
- Submit a client debug keyword string whose leading whitespace makes allocation size diverge from the parsed token
- Trigger parsing in orangefs_prepare_cdm_array so the undersized kernel heap buffer is overflowed
- Cause a kernel oops or panic, or attempt to convert the heap corruption into local privilege escalation
How to detect it
No public exploit or named actor activity is known, so hunting is for local abuse and crash evidence rather than a specific campaign. Review dmesg, journalctl -k, /var/log/kern.log, and vmcore/kdump for oops, BUG, or panic stacks in orangefs or orangefs_prepare_cdm_array. Audit writes to OrangeFS debug control files, especially client-debug mask updates containing leading whitespace. Check auditd/syscall logs for unprivileged open/write to debugfs OrangeFS paths. On unexplained host crashes, confirm whether orangefs was loaded. Post-exploitation would resemble generic local privilege escalation: unexpected root processes from unprivileged parents, kernel taint, or disabled integrity controls.
- orangefs_prepare_cdm_array
- /sys/kernel/debug/orangefs/client-debug
- /sys/kernel/debug/orangefs/kernel-debug
- /sys/kernel/debug/orangefs/
- Oops:.*orangefs
- BUG:.*orangefs
- Call Trace:.*orangefs
What your security team should do
- Inventory hosts that load orangefs or mount OrangeFS and patch those kernels first (HPC and multi-tenant nodes especially)
- Do not treat this as a KEV/ransomware emergency given no known exploitation and very low, flat EPSS, but do not defer kernel updates on OrangeFS systems
- Unload and blacklist the orangefs module on systems that do not need it
- Restrict write access to OrangeFS debugfs debug-mask interfaces to administrators
- Watch kernel logs for orangefs oops/BUG traces and unexplained panics on OrangeFS hosts
- Track distro kernel advisories for the exact package version that contains the fix
The record
In the Linux kernel, the following vulnerability has been resolved: orangefs: skip leading spaces before parsing client debug masks orangefs_prepare_cdm_array() sizes each client debug keyword buffer with strcspn(cds_head, " "), but then parses the keyword with %s. The %s conversion skips leading whitespace, while strcspn() does not. If a client debug entry starts with a space, the allocation can be sized for an empty keyword while sscanf() copies the following non-empty token. This can write past the end of the allocated keyword buffer. Skip leading spaces before computing the keyword length so the allocation matches the string parsed by sscanf().
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|