CVE-2026-64572

ipv4: fib: free fib_alias with kfree_rcu() on insert error path

State
Published
Severity
Not scored
Published
Aug 5, 2026
Updated
Aug 19, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before 9d0778571def598c31e84a38ae5a7ebc6f65e6d8Affected
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before bb03350f974aec352b660d032a1d283eb462165aAffected
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before 6429c9cfd941e62acd7bb0bc64d631574d4c3b2aAffected
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before 8150b5365f026e72250cacc527ea00be30f40105Affected
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before d007056868723de9c0cc3f5ffaad47a8d468b9a4Affected
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before cb8be318b4432abd88d3172ec157330f27a5f7a7Affected
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before b8d2ea75c76abcd0d72679c2f488271f573e32fbAffected
  • a6c76c17df021b141b0d306828c9fe4ba2d2717c to before f2f152e94a67bc746afaf05a1b2702c195553112Affected
LinuxLinux
  • 5.6Affected
  • before 5.6Not affected
  • 5.10.265 through 5.10.*Not affected
  • 5.15.216 through 5.15.*Not affected
  • 6.1.183 through 6.1.*Not affected
  • 6.6.148 through 6.6.*Not affected
  • 6.12.101 through 6.12.*Not affected
  • 6.18.42 through 6.18.*Not affected
  • 7.1.6 through 7.1.*Not affected
  • 7.2 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.