CVE-2026-98867
NoneCVSS
—
EPSS
0.2%
Published
Oct 18, 2026
CISA due date
—
Cloudanix analysis
A storage caching feature in Linux could let an attacker who can tamper with cache data cause system crashes or potentially take control.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write via unchecked logical offset from persistent cache device used to index into fixed-size subtrees array, allowing rb_insert to write through invalid pointer during replay.
Why it matters to the business
Linux systems using dm-pcache for storage caching face risk of kernel memory corruption, crashes, or potential local privilege escalation; urgency is moderate given twelve days since disclosure and absence from known exploited lists.
How an attack unfolds
An attacker with ability to write arbitrary keys into the persistent cache device crafts a zero-length key or one whose offset-plus-length exceeds device size; on cache replay, cache_key_decode accepts the key, get_subtree performs out-of-bounds array indexing, and rb_insert writes through the resulting invalid subtree pointer.
How to fix it
Update the Linux kernel to a version containing the bounds check that rejects zero-length keys and keys whose computed off+len exceeds device size before use in cache_key_decode.
How to confirm the fix worked
Confirm kernel source contains the added length and offset validation in cache_key_decode; exercise dm-pcache replay with both valid and out-of-bounds keys to verify rejection; monitor for absence of related oops messages.
Typical attack path
- Obtain write access to the dm-pcache device or underlying persistent memory
- Store a malicious key record with invalid logical offset or zero length
- Trigger cache replay or device initialization that invokes cache_key_decode
- Cause get_subtree to compute out-of-bounds index into req_key_tree->subtrees
- Execute rb_insert write through the resulting invalid pointer
How to detect it
Search kernel logs for oops or panic traces containing cache_key_decode, get_subtree, or rb_insert symbols originating from dm-pcache; inspect persistent cache device contents for keys with zero length or offsets near device capacity during forensic review.
What your security team should do
- Apply the upstream dm-pcache bounds-check patch at the earliest maintenance window
- Restrict untrusted local access to systems exposing dm-pcache devices until patched
- Review dm-pcache usage in storage stacks and consider disabling the module where not required
- Add kernel oops and panic monitoring for dm-pcache symbols to detect attempted exploitation
The record
In the Linux kernel, the following vulnerability has been resolved: dm-pcache: bound the logical key offset from persistent memory cache_key_decode() takes a key's logical off from the cache device and later indexes req_key_tree->subtrees[] by it in get_subtree(). An off past the device forms a subtree pointer outside the array, which rb_insert() writes through during replay. Reject a key of zero length, or whose off+len (computed in 64 bits) exceeds the device size, before it is used.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|