CVE-2026-72421 PUBLISHED

ipv4: fib: Don't ignore error route in local/main tables.

Assigner: Linux
Reserved: 09.08.2026 Published: 15.08.2026 Updated: 17.08.2026

In the Linux kernel, the following vulnerability has been resolved:

ipv4: fib: Don't ignore error route in local/main tables.

When CONFIG_IP_MULTIPLE_TABLES is enabled but no rule is added, fib_lookup() performs route lookup directly on two tables.

Since the first lookup does not properly bail out, the result of an error route in the merged local/main table could be overwritten by another route in the default table:

# unshare -n # ip link set lo up # ip route add 192.168.0.0/24 dev lo table 253 # ip route add unreachable 192.168.0.0/24 # ip route get 192.168.0.1 192.168.0.1 dev lo table default uid 0 cache <local>

Once a random rule is added, the error route is respected:

# ip rule add table 0 # ip rule del table 0 # ip route get 192.168.0.1 RTNETLINK answers: No route to host

Let's fix the inconsistent behaviour.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
CVSS Score: 10

AV:N - fib_lookup() is on the IPv4 receive and transmit datapaths (ip_route_input_rcu, ip_route_output_key, forwarding) reached by remote packets on internet-facing routers, gateways, cloud hosts, and container nodes without any local syscall. AC:L - Once main/local holds an error route and default has an overlapping prefix (reproduced in the fix commit with basic ip-route commands), any matching packet or socket lookup deterministically hits the bypass; no race or attacker-independent memory layout is required. PR:N - Overlapping table layout is a deployment/CAP_NET_ADMIN prerequisite, but exploitation only requires sending traffic or using sockets; the remote attacker needs no credentials or privileges on the victim once the vulnerable routing state exists. UI:N - Route resolution runs automatically in the kernel networking stack during normal packet forwarding and connection setup; no victim mount, click, or file open is needed beyond ordinary network use. S:C - Bypassing unreachable/prohibit/blackhole routes can defeat network-namespace/pod egress blackholes and segmentation boundaries on multi-tenant hosts and routers, allowing access outside the intended isolated security scope. C:H - Ignored error routes let traffic reach destinations deliberately isolated (internal networks, metadata endpoints, sinkholed ranges), exposing data that routing policy was designed to keep inaccessible. I:H - Packets that should be dropped or rejected are instead forwarded via the default-table route, enabling injection of traffic into networks marked unreachable, prohibited, or blackhole. A:N - The defect is incorrect route selection only; it does not corrupt memory, panic the kernel, deadlock, or inherently exhaust resources, so availability impact is none.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to a29e95fbc51e8a1b932773fd0e259b2080881443 (excl.)
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to 5ae18d87a45698e8244d0fcba64c658c35a7dd3d (excl.)
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to 9127589aabdee588278e8d0d0bd3709a760a92c8 (excl.)
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to 49eaf1403201357762d745a35882fb734107d763 (excl.)
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to fd25996f57a95d56bc568c89b4921edcf334b7d8 (excl.)
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to 828fad4fd418bcdb9f5d66fec0d184c52a85ec31 (excl.)
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to a668fa160247d7bbe921548cb845f607b8b9305f (excl.)
  • affected from f4530fa574df4d833506c53697ed1daa0d390bf4 to b72f0db64205d9ce462038ba995d5d31eff32dc1 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.6 is affected
  • unaffected from 0 to 3.6 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.97 to 6.12.* (incl.)
  • unaffected from 6.18.40 to 6.18.* (incl.)
  • unaffected from 7.1.5 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References