CVE-2026-68138
net/sched: сериализация qdisc_rtab_list при конкурентных get/put
- Опубликовано
- 10 авг. 2026 г.
- Обновлено
- 23 авг. 2026 г.
- Назначение CNA
- Linux
- Наблюдены доказательства
- 19 авг. 2026 г.
Первичный CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HНизкий · следующие 30 дней
- Процентиль
- 21,0 %
- Дата модели
- 21 сент. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
В ядре Linux устранена следующая уязвимость: net/sched: сериализация qdisc_rtab_list против конкурентных get/put Функции qdisc_get_rtab() и qdisc_put_rtab() изменяют общепроцессный односвязный список qdisc_rtab_list и обычный неатомарный 'int refcnt' без блокировки. Ранее это было безопасно, поскольку каждый вызывающий код исторически удерживал мьютекс RTNL, который сериализовал все операции поиска, вставки и освобождения таблиц скорости. Этот инвариант больше не выполняется. cls_flower устанавливает TCF_PROTO_OPS_DOIT_UNLOCKED, поэтому tc_new_tfilter() сохраняет для него rtnl_held == false и устанавливает TCA_ACT_FLAGS_NO_RTNL. Этот флаг распространяется через tcf_exts_validate_ex() -> tcf_action_init() -> tcf_action_init_1() -> tcf_police_init(), которая вызывает qdisc_get_rtab()/qdisc_put_rtab() без удержания мьютекса RTNL. Два запроса RTM_NEWTFILTER на разных CPU, каждый из которых добавляет фильтр flower с действием police, использующим одинаковую скорость, затем гоняются за qdisc_rtab_list и за неатомарным refcnt, что приводит к use-after-free / double-free структуры struct qdisc_rate_table из kmalloc-2k. qdisc_rtab_list является единым глобальным (не per-netns), поэтому повреждённый объект используется во всей системе. BUG: KASAN: slab-use-after-free in qdisc_put_rtab+0x12f/0x160 qdisc_put_rtab+0x12f/0x160 tcf_police_init+0xda9/0x1590 tcf_action_init_1+0x460/0x6b0 tcf_action_init+0x439/0xa40 tcf_exts_validate_ex+0x42d/0x550 fl_change+0xddd/0x7da0 tc_new_tfilter+0xaa7/0x2420 rtnetlink_rcv_msg+0x95e/0xe90 который принадлежит кэшу kmalloc-2k размером 2048 Защитите qdisc_rtab_list и счётчик ссылок с помощью выделенной spinlock. (Блокирующее, GFP_KERNEL) выделение памяти в qdisc_get_rtab() выполняется до взятия блокировки; если конкурентный вставщик тем временем добавил идентичную таблицу, свежевыделенная освобождается под блокировкой, поэтому дубликат не утекает. qdisc_put_rtab() теперь уменьшает счётчик ссылок и удаляет элемент из списка под той же блокировкой.
Источники
3Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.