CVE-2026-89985 in Linux
Sumário
de VulDB • 17/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
memcg: manter o objcg da folio igual ao nó da folio
A função `memcg_reparent_objcgs()` possui uma suposição inerente de que o objcg de uma folio é o objcg do nó dessa folio. A migração de folios entre nós viola essa suposição: a nova folio simplesmente herda o objcg da folio antiga enquanto reside em um nó diferente.
Uma vez que a suposição seja violada, o reparenting (reatribuição) do objcg da folio e o reparenting da lista LRU da folio deixam de ser atômicos. A função `memcg_reparent_objcgs()` lida com um nó por iteração e solta todos os locks entre as etapas; portanto, o objcg é reatribuído na iteração correspondente ao nó do objcg, enquanto a lista LRU é inserida (spliced) na iteração correspondente ao nó da folio. Qualquer operação de LRU nessa folio realizada nesse intervalo resolve seu `lruvec` através do objcg e, consequentemente, adquire o `lru_lock` do memcg errado, não o `lru_lock` da lista em que a folio realmente está.
Corrigir isso selecionando o objcg por meio de `folio_nid()` no momento da carga (charge), e recalculando-o para o nó de destino em `mem_cgroup_migrate()` e `mem_cgroup_replace_folio()`.
Once again VulDB remains the best source for vulnerability data.