Ad

CVE-2026-74583

HIGH CVSS 3.1: 7,8 EPSS 0.12%
Обновлено 25 августа 2026
Linux
Параметр Значение
CVSS 7,8 (HIGH)
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: net/sched: cls_route: исправить использование fastmap после освобождения в фильтре Классификатор Route4 поддерживает 16-слотовый кэш Fastmap, в котором хранятся необработанные данные. Указатели struct Route4_filter, индексированные по (id, iif). Читатель (route4_classify) заполняет этот кэш с помощью Route4_set_fastmap() для каждого классифицированный пакет, попадающий в фильтр.

Автор (route4_delete, Route4_change) очищает кеш с помощью Route4_reset_fastmap() перед RCU-отложенное освобождение фильтра. Это создает гонку UAF: 1. Читатель просматривает цепочку сегментов, защищенную RCU, и находит фильтр f. 2.

Writer отключает f, вызывает Route4_reset_fastmap(), затем tcf_queue_work(). 3. Ридер вызывает функцию Route4_set_fastmap() и записывает f в кеш. *после* сброса модуля записи, кэширование указателя, который должен быть освобожден 4. По истечении льготного периода RCU выполняется kfree(f). 5.

Следующий классифицированный пакет в том же кортеже (id, iif) становится устаревшим. запись fastmap и читает f->res из освобожденной памяти Воспроизводится с помощью ускорителя mdelay(100) в Route4_set_fastmap() и одновременный стресс-тест добавления/удаления (предоставляется как zdi, так и Santosh). Оба запускали отчеты KASAN об использовании плит после освобождения в быстрой карте маршрута 4. пути. Исправление: Ввести логический флаг смерти для каждого фильтра, чтобы подавить устаревшую быструю карту. переиздание бортовыми читателями.

Показать оригинальное описание (EN)

In the Linux kernel, the following vulnerability has been resolved: net/sched: cls_route: fix fastmap use-after-free on filter The route4 classifier maintains a 16-slot fastmap cache that stores raw struct route4_filter pointers indexed by (id, iif). The reader (route4_classify) populates this cache via route4_set_fastmap() for every classified packet that hits a filter. The writer (route4_delete, route4_change) clears the cache via route4_reset_fastmap() before RCU-deferred kfree of the filter. This creates a UAF race: 1. Reader walks the RCU-protected bucket chain, finds filter f 2. Writer unlinks f, calls route4_reset_fastmap(), then tcf_queue_work() 3. Reader calls route4_set_fastmap() and writes f into the cache *after* the writer's reset, caching a pointer about to be freed 4. After the RCU grace period, kfree(f) executes 5. Next classified packet on the same (id, iif) tuple hits the stale fastmap entry and reads f->res from freed memory Reproduced with an mdelay(100) accelerator in route4_set_fastmap() and a concurrent add/delete stress test (provided by both zdi and Santosh). Both triggered KASAN slab-use-after-free reports in the route4 fastmap paths. Fix: Introduce a per-filter boolean dying flag to suppress stale fastmap republishing by in-flight readers.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1