Vulnerabilidad en Linux (CVE-2026-23277)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
20/03/2026
Última modificación:
18/04/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
net/sched: teql: corrige la desreferenciación de puntero NULL en iptunnel_xmit en la transmisión del esclavo TEQL<br />
<br />
teql_master_xmit() llama a netdev_start_xmit(skb, slave) para transmitir a través de dispositivos esclavos, pero no actualiza skb-&gt;dev al dispositivo esclavo de antemano.<br />
<br />
Cuando un túnel gretap es un esclavo TEQL, la ruta de transmisión llega a iptunnel_xmit() que guarda dev = skb-&gt;dev (todavía apuntando al maestro teql0) y luego llama a iptunnel_xmit_stats(dev, pkt_len). Esta función hace:<br />
<br />
get_cpu_ptr(dev-&gt;tstats)<br />
<br />
Dado que teql_master_setup() no establece dev-&gt;pcpu_stat_type en NETDEV_PCPU_STAT_TSTATS, la pila de red central nunca asigna tstats para teql0, por lo que dev-&gt;tstats es NULL. get_cpu_ptr(NULL) calcula NULL + __per_cpu_offset[cpu], lo que resulta en un fallo de página.<br />
<br />
ERROR: no se puede manejar el fallo de página para la dirección: ffff8880e6659018<br />
#PF: acceso de escritura de supervisor en modo kernel<br />
#PF: código_de_error(0x0002) - página no presente<br />
PGD 68bc067 P4D 68bc067 PUD 0<br />
Oops: Oops: 0002 [#1] SMP KASAN PTI<br />
RIP: 0010:iptunnel_xmit (./include/net/ip_tunnels.h:664 net/ipv4/ip_tunnel_core.c:89)<br />
Traza de Llamadas:<br />
<br />
ip_tunnel_xmit (net/ipv4/ip_tunnel.c:847)<br />
__gre_xmit (net/ipv4/ip_gre.c:478)<br />
gre_tap_xmit (net/ipv4/ip_gre.c:779)<br />
teql_master_xmit (net/sched/sch_teql.c:319)<br />
dev_hard_start_xmit (net/core/dev.c:3887)<br />
sch_direct_xmit (net/sched/sch_generic.c:347)<br />
__dev_queue_xmit (net/core/dev.c:4802)<br />
neigh_direct_output (net/core/neighbour.c:1660)<br />
ip_finish_output2 (net/ipv4/ip_output.c:237)<br />
__ip_finish_output.part.0 (net/ipv4/ip_output.c:315)<br />
ip_mc_output (net/ipv4/ip_output.c:369)<br />
ip_send_skb (net/ipv4/ip_output.c:1508)<br />
udp_send_skb (net/ipv4/udp.c:1195)<br />
udp_sendmsg (net/ipv4/udp.c:1485)<br />
inet_sendmsg (net/ipv4/af_inet.c:859)<br />
__sys_sendto (net/socket.c:2206)<br />
<br />
Solucione esto estableciendo skb-&gt;dev = slave antes de llamar a netdev_start_xmit(), para que las funciones de transmisión del túnel vean el dispositivo esclavo correcto con tstats correctamente asignados.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/0bad9c86edd22dec4df83c2b29872d66fd8a2ff4
- https://git.kernel.org/stable/c/0cc0c2e661af418bbf7074179ea5cfffc0a5c466
- https://git.kernel.org/stable/c/21ea283c2750c8307aa35ee832b0951cc993c27d
- https://git.kernel.org/stable/c/383493b9940e3d1b5517424081b3e072e20ec43c
- https://git.kernel.org/stable/c/57c153249143333bbf4ecf927bdf8aa2696ee397
- https://git.kernel.org/stable/c/59b06d8b9bdb6b64b3c534c18da68bce5ccd31be
- https://git.kernel.org/stable/c/6b1f563d670162e188a0f2aec39c24b67b106e17
- https://git.kernel.org/stable/c/81a43e8005366f16e629d8c95dfe05beaa8d36a7



