CVE-2025-68241 in Linuxinformación

Resumen

por VulDB • 2026-05-30

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

ipv4: route: Evitar que rt_bind_exception() vuelva a vincular fnhe obsoleto

La ruta de transmisión de paquetes del controlador sit llama a: sit_tunnel_xmit() -> update_or_create_fnhe(), lo que provoca que se llame a fnhe_remove_oldest() para eliminar las entradas que exceden FNHE_RECLAIM_DEPTH+random.

La ventana de carrera (race condition) está entre la selección de fnheX para su eliminación por fnhe_remove_oldest() y la posterior kfree_rcu(). Durante este tiempo, la ruta concurrente __mkroute_output() -> find_exception() puede obtener fnheX, que está a punto de ser eliminado, y rt_bind_exception() lo vincula entonces con un nuevo dst mediante dst_hold(). Cuando fnheX original se libera a través de RCU, la referencia dst queda permanentemente filtrada (leaked).

CPU 0 CPU 1 __mkroute_output() find_exception() [fnheX]
update_or_create_fnhe() fnhe_remove_oldest() [fnheX]
rt_bind_exception() [bind dst]
RCU callback [fnheX liberado, fuga de dst]

Este problema se manifiesta como una fuga del contador de referencias del dispositivo y una advertencia en dmesg al desregistrar el dispositivo de red:

unregister_netdevice: esperando a que sitX se vuelva libre. Contador de uso = N

Ido Schimmel proporcionó el método simple de validación de prueba [1].

La solución borra 'oldest->fnhe_daddr' antes de llamar a fnhe_flush_routes(). Dado que rt_bind_exception() verifica este campo, establecerlo en cero evita que el fnhe obsoleto sea reutilizado y vinculado a un nuevo dst justo antes de su liberación.

[1]
ip netns add ns1 ip -n ns1 link set dev lo up ip -n ns1 address add 192.0.2.1/32 dev lo ip -n ns1 link add name dummy1 up type dummy ip -n ns1 route add 192.0.2.2/32 dev dummy1 ip -n ns1 link add name gretap1 up arp off type gretap \ local 192.0.2.1 remote 192.0.2.2 ip -n ns1 route add 198.51.0.0/16 dev gretap1 taskset -c 0 ip netns exec ns1 mausezahn gretap1 \ -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & taskset -c 2 ip netns exec ns1 mausezahn gretap1 \ -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & sleep 10 ip netns pids ns1 | xargs kill ip netns del ns1

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Reservar

2025-12-16

Divulgación

2025-12-16

Moderación

aceptado

Artículo

VDB-336785

CPE

listo

EPSS

0.00165

KEV

no

Actividades

muy bajo

Fuentes

Interested in the pricing of exploits?

See the underground prices here!