Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2024-35973)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
20/05/2024
Última modificación:
04/04/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: geneve: corrige la validación del encabezado en geneve[6]_xmit_skb syzbot puede activar un valor uninit en geneve_xmit() [1] Problema: mientras que la mayoría de los asistentes de túnel IP (como ip_tunnel_get_dsfield( )) usa skb_protocol(skb, true), pskb_inet_may_pull() solo usa skb->protocol. Si se encuentra algo más que ETH_P_IPV6 o ETH_P_IP en skb->protocol, pskb_inet_may_pull() no hace nada en absoluto. Si la persona que llama proporcionó una etiqueta vlan (af_packet en el caso de syzbot), es posible que el encabezado de la red no apunte a la ubicación correcta y que la parte lineal de skb sea más pequeña de lo esperado. Agregue skb_vlan_inet_prepare() para realizar una validación completa de Mac. Utilice esto en Ginebra por el momento. Sospecho que debemos adoptarlo de manera más amplia. v4: Jakub informó que v3 rompió la autoprueba de l2_tos_ttl_inherit.sh: solo llame a __vlan_get_protocol() para tipos de VLAN. v2,v3: se abordaron los comentarios de Sabrina sobre v1 y v2 [1] ERROR: KMSAN: valor uninit en geneve_xmit_skb drivers/net/geneve.c:910 [en línea] ERROR: KMSAN: valor uninit en geneve_xmit+0x302d/0x5420 drivers/ net/geneve.c:1030 geneve_xmit_skb drivers/net/geneve.c:910 [en línea] geneve_xmit+0x302d/0x5420 drivers/net/geneve.c:1030 __netdev_start_xmit include/linux/netdevice.h:4903 [en línea] netdev_start_xmit include/ linux/netdevice.h:4917 [en línea] xmit_one net/core/dev.c:3531 [en línea] dev_hard_start_xmit+0x247/0xa20 net/core/dev.c:3547 __dev_queue_xmit+0x348d/0x52c0 net/core/dev.c: 4335 dev_queue_xmit include/linux/netdevice.h:3091 [en línea] paquete_xmit+0x9c/0x6c0 net/packet/af_packet.c:276 paquete_snd net/packet/af_packet.c:3081 [en línea] packet_sendmsg+0x8bb0/0x9ef0 net/packet/ af_packet.c:3113 sock_sendmsg_nosec net/socket.c:730 [en línea] __sock_sendmsg+0x30f/0x380 net/socket.c:745 __sys_sendto+0x685/0x830 net/socket.c:2191 __do_sys_sendto net/socket.c:2203 [en línea ] __se_sys_sendto net/socket.c:2199 [en línea] __x64_sys_sendto+0x125/0x1d0 net/socket.c:2199 do_syscall_64+0xd5/0x1f0 Entry_SYSCALL_64_after_hwframe+0x6d/0x75 Uninit se creó en slab_post_alloc _hook mm/slub.c:3804 [en línea] slab_alloc_node mm/slub.c:3845 [en línea] kmem_cache_alloc_node+0x613/0xc50 mm/slub.c:3888 kmalloc_reserve+0x13d/0x4a0 net/core/skbuff.c:577 __alloc_skb+0x35b/0x7a0 net/core/skbuff.c: 668 alloc_skb include/linux/skbuff.h:1318 [en línea] alloc_skb_with_frags+0xc8/0xbf0 net/core/skbuff.c:6504 sock_alloc_send_pskb+0xa81/0xbf0 net/core/sock.c:2795 paquete_alloc_skb net/packet/af_packet.c :2930 [en línea] paquete_snd net/packet/af_packet.c:3024 [en línea] paquete_sendmsg+0x722d/0x9ef0 net/packet/af_packet.c:3113 sock_sendmsg_nosec net/socket.c:730 [en línea] __sock_sendmsg+0x30f/0x380 net/ Socket.c: 745 __sys_sendto+0x685/0x830 net/Socket.c: 2191 __do_sys_sendto net/Socket.c: 2203 [en línea] __se_sys_sendto net/Socket.c: 2199 [Inline] __X64_SYS_SENDTO+0x125/0x1d0 net/Socket/Socket. 2199 do_syscall_64+0xd5/0x1f0 Entry_SYSCALL_64_after_hwframe+0x6d/0x75 CPU: 0 PID: 5033 Comm: syz-executor346 No contaminado 6.9.0-rc1-syzkaller-00005-g928a87efa423 #0 Nombre de hardware: Google Google Compute Engine/Google Motor de cómputo, BIOS Google 29/02/2024

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.19.191 (incluyendo) 4.19.313 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.4.119 (incluyendo) 5.4.275 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.10.37 (incluyendo) 5.10.216 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11.21 (incluyendo) 5.12 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.12.4 (incluyendo) 5.15.156 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.87 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.28 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.8.7 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:*