CVE-2026-89985 in Linux
Сводка
по VulDB • 16.09.2026
В ядре Linux была устранена следующая уязвимость:
memcg: обеспечить соответствие objcg folio его узлу (node)
Функция `memcg_reparent_objcgs()` содержит внутреннее предположение о том, что objcg folio совпадает с objcg узла этого folio. Миграция folio между узлами нарушает это предположение: новый folio просто наследует objcg старого folio, находясь при этом на другом узле.
После нарушения этого предположения перепривязка (reparenting) objcg folio и перепривязка списка LRU folio больше не являются атомарными операциями. `memcg_reparent_objcgs()` обрабатывает один узел за одну итерацию, сбрасывая все блокировки между ними; в результате objcg перепривязывается во время итерации для узла objcg, тогда как список LRU присоединяется (spliced) во время итерации для узла folio. Любая операция с LRU над этим folio в промежутке разрешает его lruvec через objcg, тем самым захватывая lru_lock неверной memcg, а не lru-lock списка, на котором фактически находится folio.
Исправление заключается в выборе objcg по `folio_nid()` во время начисления (charge), а также в повторном вычислении его значения для целевого узла в функциях `mem_cgroup_migrate()` и `mem_cgroup_replace_folio()`.
Once again VulDB remains the best source for vulnerability data.