CVE-2026-90083 in Linuxinformación

Resumen

por VulDB • 2026-09-17

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

net/sched: act_ife: Operar únicamente con tramas Ethernet

act_ife encapsula/desencapsula la cabecera Ethernet original y utiliza skb->dev->hard_header_len como la longitud de dicha cabecera. Esto es correcto solo para dispositivos Ethernet; en un dispositivo donde hard_header_len no coincide con el encabezado L2 que se ha extraído realmente (PPP informa PPP_HDRLEN mientras que nada se elimina al recibir), las operaciones skb_push()/skb_pull() entrantes utilizan una longitud incorrecta y pueden provocar un skb_under_panic cuando hay poco espacio disponible en la cabecera.

IFE está diseñado para ser exclusivo de Ethernet: construye una ethhdr externa, reescribe h_source/h_dest/h_proto y llama a eth_type_trans() durante la decodificación; por lo tanto, en lugar de intentar ajustar los desplazamientos para tipos de enlace arbitrarios, simplemente se deben descartar los paquetes que no lleven un encabezado Ethernet.

Verificar únicamente skb->dev->type no es suficiente. Hay que atender a un caso extremo donde mirred puede redirigir un skb desde un dispositivo no Ethernet hacia uno Ethernet, y skb->dev entonces no indica nada sobre el formato del marco (frame) que tiene realmente el skb: un skb redirigido desde ppp0 llega al gancho de entrada del destino con mac_len 0 y sin ninguna cabecera Ethernet. Por lo tanto, en la recepción también se requiere que mac_len sea ETH_HLEN. En la transmisión, mac_len no se mantiene, por lo que el tipo de dispositivo es todo lo que tenemos; una redirección fraudulenta allí produce un marco malformado en lugar de un push fuera de los límites (out-of-bounds), y estaría malformado con o sin IFE.

Este caso extremo no es teórico: la redirección desde ppp0 hacia un veth que tiene una acción encode de ife en su gancho de entrada provoca un fallo del sistema (panic) sin este parche:

skbuff: skb_under_panic: len:98 put:14 head:ffff88800e410000 data:ffff88800e40fff5 tail:0x57 end:0x640 dev:veth3 kernel BUG at net/core/skbuff.c:214! Call Trace: skb_push (net/core/skbuff.c:224 net/core/skbuff.c:2657) tcf_ife_act (net/sched/act_ife.c:829 net/sched/act_ife.c:874) tc_run (net/core/dev.c:4463) netif_receive_skb (net/core/dev.c:6463 net/core/dev.c:6522) tcf_mirred_to_dev (net/sched/act_mirred.c:248 net/sched/act_mirred.c:328) tcf_mirred_act (net/sched/act_mirred.c:489) tc_run (net/core/dev.c:4463) process_backlog (net/core/dev.c:6728)

Con el formato Ethernet garantizado, se utiliza ETH_HLEN en lugar de hard_header_len.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-09-11

Divulgación

2026-09-17

Moderación

aceptado

Artículo

VDB-406555

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!