CVE-2026-80962
nicheOut-of-bounds read/write in Linux kernel dm-pcache via malformed cache metadata
The Linux kernel's dm-pcache device-mapper target fails to validate geometry fields (n_segs and per-segment ids) read from the on-disk cache_info metadata before using them to index cache->segments[], so an oversized n_segs or out-of-range segment id drives an out-of-bounds read and write plus a wild pointer via CACHE_DEV_SEGMENT(). The values come from cache-device metadata that is only CRC-protected with a fixed public seed, so whoever supplies the cache device on a device-mapper table load fully controls them; the table load itself requires CAP_SYS_ADMIN, making this a local, low-privilege-required attack (CVSS 7.8). A successful attacker gains kernel memory corruption with high impact on confidentiality, integrity, and availability — plausibly a kernel crash or a sandbox/privilege boundary escape from an already-privileged position — and even unintentionally corrupted cache metadata could trigger the out-of-bounds access. Affected systems are Linux kernels shipping the dm-pcache target where untrusted or corrupted cache devices can be loaded. No public proof of concept is known, the flaw is not in CISA's KEV, and no exploitation in the wild has been reported.
What to do: Update to a kernel containing the upstream fix, which rejects an n_segs exceeding the device segment count and out-of-range segment ids before use. Until patched, restrict who can obtain CAP_SYS_ADMIN and load device-mapper tables (e.g., lock down /dev/mapper/control and avoid granting CAP_SYS_ADMIN to containers or untrusted local users). If you use dm-pcache, verify the integrity of cache-device metadata before loading it, since corrupted media can trigger the same out-of-bounds access even without malice.
| Linux kernel (dm-pcache device-mapper target) | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
In the Linux kernel, the following vulnerability has been resolved: dm-pcache: validate geometry fields from on-disk cache_info cache_segs_init() iterates cache_info->n_segs times indexing cache->segments[], which is sized to the cache device geometry, and get_seg_id() takes each segment id from the on-media cache_info and the per-segment next_seg link. Both come from cache device metadata that is only CRC-protected with a fixed public seed, so whoever supplies the cache device on a table load (CAP_SYS_ADMIN) controls them: an oversized n_segs or an out-of-range id drives an out-of-bounds access of cache->segments[] and a wild CACHE_DEV_SEGMENT() pointer into the device mapping -- an out-of-bounds read and write from on-disk data. Reject an n_segs that exceeds the device segment count and a segment id that is out of range before either is used. Valid metadata is unaffected.
- Vector
- CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
In the news0 stories
No ingested article mentions this CVE yet.