Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
1d57628ff95b32d5cfa8d8f50e07690c161e9cf0 to < ab5dcde6fa96bc115b85f3621c60e39c66229a90affected1d57628ff95b32d5cfa8d8f50e07690c161e9cf0 to < 3e19172089ec81132a8a48e802b1034a744209f4affected1d57628ff95b32d5cfa8d8f50e07690c161e9cf0 to < 32d1809da31094ef76fd98dc1f1a8b55ca1295ddaffected
Linux Linux
Default version status: affected
6.18affected0 to < 6.18unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected