Vulnerabilidad en kernel de Linux (CVE-2025-21926)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
01/04/2025
Última modificación:
01/04/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: gso: corrección de propiedad en __udp_gso_segment. En __udp_gso_segment, el destructor de skb se elimina antes de segmentar el skb, pero la referencia del socket se mantiene intacta. Esto supone un problema si el skb original queda huérfano posteriormente, ya que podemos encontrarnos con el siguiente error: ¡ERROR del kernel en ./include/linux/skbuff.h:3312! (skb_orphan) RIP: 0010:ip_rcv_core+0x8b2/0xca0 Rastreo de llamadas: ip_rcv+0xab/0x6e0 __netif_receive_skb_one_core+0x168/0x1b0 process_backlog+0x384/0x1100 __napi_poll.constprop.0+0xa1/0x370 net_rx_action+0x925/0xe50 Lo anterior puede suceder después de una secuencia de eventos al usar OpenVSwitch, cuando una acción OVS_ACTION_ATTR_USERSPACE precede a una acción OVS_ACTION_ATTR_OUTPUT: 1. Se maneja OVS_ACTION_ATTR_USERSPACE (en do_execute_actions): el skb pasa por queue_gso_packets y luego __udp_gso_segment, donde se elimina su destructor. 2. Los datos de los segmentos se copian y se envían al espacio de usuario. 3. Se gestiona OVS_ACTION_ATTR_OUTPUT (en do_execute_actions) y se envía el mismo skb original a su ruta. 4. Si posteriormente se encuentra con skb_orphan, se detecta el error. Para solucionarlo, elimine también la referencia al socket en __udp_gso_segment.
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/01a83237644d6822bc7df2c5564fc81b0df84358
- https://git.kernel.org/stable/c/084819b0d8b1bd433b90142371eb9450d657f8ca
- https://git.kernel.org/stable/c/455217ac9db0cf9349b3933664355e907bb1a569
- https://git.kernel.org/stable/c/9f28205ddb76e86cac418332e952241d85fed0dc
- https://git.kernel.org/stable/c/a2d1cca955ed34873e524cc2e6e885450d262f05
- https://git.kernel.org/stable/c/c32da44cc9298eaa6109e3fc2c2b4e07cc4bf11b
- https://git.kernel.org/stable/c/e8db70537878e1bb3fd83e5abcc6feefc0587828
- https://git.kernel.org/stable/c/ee01b2f2d7d0010787c2343463965bbc283a497f