Ad

CVE-2026-64572

NONE EPSS 0.19%
Обновлено 5 августа 2026
Linux
Параметр Значение
Поставщик Linux
Публичный эксплойт Нет

В ядре Linux устранена следующая уязвимость: ipv4: fib: свободный fib_alias с kfree_rcu() по пути ошибки вставки fib_table_insert() публикует new_fa в fa_list листа с помощью fib_insert_alias() перед вызовом уведомителей о записи Fib. Когда уведомитель не работает, путь ошибки удаляет new_fa с помощью fib_remove_alias() (hlist_del_rcu) и сразу же освобождает его с помощью kmem_cache_free(). fib_table_lookup() просматривает этот список только с помощью rcu_read_lock(), поэтому параллельный поиск, который уже достиг new_fa, продолжает читать его после бесплатно: ОШИБКА: KASAN: slab-use-after-free в fib_table_lookup (net/ipv4/fib_trie.c:1601) Чтение размера 1 по адресу ffff88810676d4eb с помощью Task Exploit/297. Отслеживание вызова: fib_table_lookup (net/ipv4/fib_trie.c:1601) ip_route_output_key_hash_rcu (net/ipv4/route.c:2814) ip_route_output_key_hash (net/ipv4/route.c:2705) __ip4_datagram_connect (net/ipv4/datagram.c:49) udp_connect (net/ipv4/udp.c:2144) __sys_connect (net/socket.c:2167) __x64_sys_connect (net/socket.c:2173) do_syscall_64 запись_SYSCALL_64_after_hwframe который принадлежит кэшу ip_fib_alias размером 56 Для запуска пути ошибки требуется CAP_NET_ADMIN и зарегистрированный фиб. уведомитель, который может отклонить маршрут; устройство netdevsim, IPv4 FIB которого Ресурс исчерпан, этого достаточно.

Освободите new_fa с alias_free_mem_rcu(), как уже было fib_table_delete() делает это для fib_alias, удаленного из дерева.

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

In the Linux kernel, the following vulnerability has been resolved: ipv4: fib: free fib_alias with kfree_rcu() on insert error path fib_table_insert() publishes new_fa into the leaf's fa_list with fib_insert_alias() before calling the fib entry notifiers. When a notifier fails, the error path removes new_fa with fib_remove_alias() (hlist_del_rcu) and frees it right away with kmem_cache_free(). fib_table_lookup() walks that list under rcu_read_lock() only, so a concurrent lookup that already reached new_fa keeps reading it after the free: BUG: KASAN: slab-use-after-free in fib_table_lookup (net/ipv4/fib_trie.c:1601) Read of size 1 at addr ffff88810676d4eb by task exploit/297 Call Trace: fib_table_lookup (net/ipv4/fib_trie.c:1601) ip_route_output_key_hash_rcu (net/ipv4/route.c:2814) ip_route_output_key_hash (net/ipv4/route.c:2705) __ip4_datagram_connect (net/ipv4/datagram.c:49) udp_connect (net/ipv4/udp.c:2144) __sys_connect (net/socket.c:2167) __x64_sys_connect (net/socket.c:2173) do_syscall_64 entry_SYSCALL_64_after_hwframe which belongs to the cache ip_fib_alias of size 56 Triggering the error path needs CAP_NET_ADMIN and a registered fib notifier that can reject a route; a netdevsim device whose IPv4 FIB resource is exhausted is enough. Free new_fa with alias_free_mem_rcu(), as fib_table_delete() already does for a fib_alias removed from the trie.