CVE-2026-98225 in LinuxИнформация

Сводка

по VulDB • 06.10.2026

В ядре Linux была устранена следующая уязвимость:

mm/shrinker: исправление некорректного вызова set_shrinker_bit() при использовании cgroup.memory=nokmem

При включенном параметре cgroup.memory=nokmem функция shrinker_memcg_alloc() преждевременно завершает работу и никогда не выделяет идентификатор (id), поэтому поле shrinker->id сохраняет значение 0, полученное от kzalloc() в функции shrinker_alloc(). Затем __list_lru_init() копирует это нулевое значение в lru->shrinker_id, где оно выглядит как допустимый индекс бита.

Функция expand_shrinker_info() также не вызывается при использовании nokmem, поэтому shrinker_nr_max остается равным 0, и каждый memcg получает пустую карту (map_nr_max == 0).

deferred_split_folio() передает реальный memcg в __list_lru_add(), независимо от того, поддерживает ли lru работу с cgroup. В результате первый THP, поставленный в очередь в рамках cgroup, вызывает set_shrinker_bit(memcg, nid, 0) и нарушает проверку границ:

WARNING: mm/shrinker.c:212 at set_shrinker_bit+0x7d/0x90, CPU#126 Call Trace: <TASK> deferred_split_folio+0x18c/0x220 map_anon_folio_pmd_nopf+0xdd/0x130 map_anon_folio_pmd_pf+0x14/0xb0 do_huge_pmd_anonymous_page+0x1a1/0x620 __handle_mm_fault+0xea9/0x10d0 handle_mm_fault+0xe5/0x320 do_user_addr_fault+0x1cc/0x870 exc_page_fault+0x81/0x1b0 asm_exc_page_fault+0x27/0x30 </TASK>

Это безопасно, так как WARN_ON_ONCE() предотвращает чтение за пределами массива unit[], однако идентификатор (id) изначально не должен выглядеть допустимым. Его следует обнулять перед возвратом из функции.

Есть два других места, которые могут скрыть эту проблему: сбросить id в __list_lru_init(), когда nokmem отключает memcg_aware, или заставить deferred_split_folio() передавать NULL, как это делает list_lru_add_obj(). Оба варианта оставляют shrinker->id неочищенным для следующего вызывающего объекта, поэтому исправление следует внести там, где выделяется идентификатор.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Ответственный

Linux

Резервировать

25.09.2026

Раскрытие

06.10.2026

Модерация

принято

Вход

VDB-414026

EPSS

0.00162

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!