Katalog CVE

CVE-2026-98920

Nieznane
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux naprawiono błąd w podsystemie netfs, gdzie bezpośrednie wywołania funkcji alokacji z puli mempool pomijały otoczkę alloc_hooks(), co przy włączonym CONFIG_MEM_ALLOC_PROFILING_DEBUG powodowało ostrzeżenia o braku ustawionego current->alloc_tag podczas alokacji i zwalniania pamięci. Problem występował m.in. przy odczycie plików z montowania CIFS, a alokacje nie były widoczne w /proc/allocinfo.

Ocena ryzyka

Błąd powoduje fałszywe ostrzeżenia jądra i brakujące wpisy w statystykach alokacji, co utrudnia diagnostykę i może maskować rzeczywiste problemy z pamięcią. Nie prowadzi bezpośrednio do eskalacji uprawnień ani utraty danych, ale obniża stabilność i jakość monitoringu systemu.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę (commit wprowadzający mempool_alloc_noreserve()). Jeśli nie używasz CONFIG_MEM_ALLOC_PROFILING_DEBUG, ryzyko jest ograniczone, ale aktualizację warto zaplanować w standardowym cyklu.

Inne podatności w Linux kernel

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

In the Linux kernel, the following vulnerability has been resolved: netfs: Fix missing alloc tagging of direct mempool allocations Commit 1d78d56c43ef ("netfs: Fix folio_queue ENOMEM in writeback by adding a mempool") added a mempool for the folio_queues and made the request, subrequest and folio_queue allocations distinguish between writeback and everything else. Writeback is part of memory reclaim and must not fail due to ENOMEM, so it allocates under GFP_NOFS through mempool_alloc(), which may dip into the pool's reserve and, if that runs empty, wait for elements to be returned. The GFP_KERNEL paths, which can return -ENOMEM to their callers, invoke the pool's ->alloc() callback directly instead. The direct call, however, skips the alloc_hooks() wrapper that the mempool_alloc() macro provides. The pool callbacks, mempool_alloc_slab() and mempool_kmalloc(), call kmem_cache_alloc_noprof() and kmalloc_noprof() and rely on current->alloc_tag having been set by the caller. With CONFIG_MEM_ALLOC_PROFILING_DEBUG=y this leads to current->alloc_tag not set WARNING: ./include/linux/alloc_tag.h:161 at __alloc_tagging_slab_alloc_hook alloc_tag was not set WARNING: ./include/linux/alloc_tag.h:166 at __alloc_tagging_slab_free_hook at allocation and free time respectively, as reported when reading files on a CIFS mount. The allocations are also missing from /proc/allocinfo. Wrap the direct ->alloc() invocations in alloc_hooks() with a new mempool_alloc_noreserve() helper in include/linux/mempool.h, next to the other alloc_hooks()-wrapped macros such as mempool_alloc(). The GFP_KERNEL paths keep their failable allocation semantics, they just get tagged now.

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