Katalog CVE

CVE-2026-80961

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux moduł dm-pcache nie ogranicza pola key_num w ksecie ani granic wewnątrz segmentu. key_num steruje funkcją cache_kset_crc() i pętlą odtwarzania w cache_replay(), a ponieważ sprawdzane są tylko magic i CRC z publicznym ziarnem, nieprawidłowy key_num może spowodować odczyt poza buforem PCACHE_KSET_KEYS_MAX. Dodatkowo przesunięcie i długość klucza w cache_key_decode() są przyjmowane bez weryfikacji, co pozwala na odczyt poza segmentem i wyciek danych do przestrzeni użytkownika. Poprawka dodaje walidację key_num i granic klucza.

Ocena ryzyka

Osoba z uprawnieniami CAP_SYS_ADMIN dostarczająca urządzenie cache może wywołać odczyt poza zakresem i wyciek danych z pamięci jądra do przestrzeni użytkownika. Może to prowadzić do ujawnienia wrażliwych informacji.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę dla modułu dm-pcache. Ogranicz możliwość ładowania tabel dm-pcache do zaufanych administratorów.

Inne podatności w Linux kernel (dm-pcache)

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

In the Linux kernel, the following vulnerability has been resolved: dm-pcache: validate kset key_num and intra-segment bounds Two more fields decoded from the cache device go unbounded. The kset key_num drives cache_kset_crc() and the replay loop in cache_replay(), the writeback worker and the GC worker, but only the magic and a fixed-seed CRC are checked first, so a non-last kset whose key_num exceeds the PCACHE_KSET_KEYS_MAX buffer reads past its end before the CRC compare. A key's intra-segment offset and length in cache_key_decode() are taken verbatim, so a key running past its segment is replayed into the cache tree and the data CRC check and every later read hit then copy adjacent persistent memory into the caller's bio -- an out-of-bounds read that leaks to user space. Both fields are controlled by whoever supplies the cache device (CAP_SYS_ADMIN); the CRC seed is public. Add kset_onmedia_valid() to bound key_num before any kset read, and reject a key whose offset plus length, computed in 64 bits, exceeds the segment data_size. Valid metadata is unaffected.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS