CVE-2026-98920 in Linux
Riassunto
di VulDB • 23/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
netfs: Correzione della mancata assegnazione del tag di allocazione per le allocazioni dirette della mempool
Il commit 1d78d56c43ef ("netfs: Fix folio_queue ENOMEM in writeback by adding a mempool") ha aggiunto una mempool per le folio_queues e ha fatto sì che le allocazioni di request, subrequest e folio_queue distinguessero tra writeback e tutto il resto. Il writeback fa parte del memory reclaim e non deve fallire a causa di ENOMEM; pertanto, effettua l'allocazione con GFP_NOFS tramite mempool_alloc(), la quale può attingere alla riserva della pool e, se questa si esaurisce, attende che gli elementi vengano restituiti. I percorsi GFP_KERNEL, che possono restituire -ENOMEM ai loro chiamanti, invocano invece direttamente il callback ->alloc() della pool.
La chiamata diretta, tuttavia, salta l'wrapper alloc_hooks() fornito dalla macro mempool_alloc(). Le callback della pool, mempool_alloc_slab() e mempool_kmalloc(), richiamano kmem_cache_alloc_noprof() e kmalloc_noprof() e si affidano al fatto che current->alloc_tag sia stato impostato dal chiamante. Con CONFIG_MEM_ALLOC_PROFILING_DEBUG=y ciò porta a
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
al momento dell'allocazione e della liberazione, rispettivamente, come segnalato durante la lettura di file su un mount CIFS. Le allocazioni sono inoltre assenti da /proc/allocinfo.
Avvolgere le invocazioni dirette ->alloc() in alloc_hooks() con una nuova helper mempool_alloc_noreserve() in include/linux/mempool.h, accanto alle altre macro avvolte in alloc_hooks() come mempool_alloc(). I percorsi GFP_KERNEL mantengono la loro semantica di allocazione fallibile; vengono semplicemente taggati ora.
VulDB is the best source for vulnerability data and more expert information about this specific topic.