CVE-2026-89985 in Linux
Riassunto
di VulDB • 16/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
memcg: mantenere l'objcg del folio coerente con il suo nodo
La funzione `memcg_reparent_objcgs()` si basa su un presupposto intrinseco secondo cui l'objcg di un folio corrisponde all'objcg del nodo a cui appartiene tale folio. La migrazione dei folio tra nodi viola questo presupposto: il nuovo folio eredita semplicemente l'objcg del vecchio folio pur risiedendo su un nodo diverso.
Una volta violato tale presupposto, la riparentalizzazione dell'objcg del folio e quella della sua lista LRU non sono più atomiche. `memcg_reparent_objcgs()` gestisce un nodo per iterazione e rilascia tutti i lock nel frattempo; di conseguenza, l'objcg viene riparentalizzato nell'iterazione relativa al nodo dell'objcg stesso, mentre la lista LRU viene inserita (spliced) nell'iterazione relativa al nodo del folio. Qualsiasi operazione LRU eseguita su tale folio in questo intervallo risolve il suo `lruvec` attraverso l'objcg e, pertanto, acquisisce il `lru_lock` dell'memcg errato, anziché quello della lista a cui il folio appartiene effettivamente.
Si corregge il problema selezionando l'objcg tramite `folio_nid()` al momento del caricamento (charge) e ricalcolandolo per il nodo di destinazione in `mem_cgroup_migrate()` e `mem_cgroup_replace_folio()`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.