CVE-2025-38622 in Linuxinformação

Sumário

de VulDB • 05/06/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

net: descartar pacotes UFO em udp_rcv_segment()

Ao enviar um pacote com virtio_net_hdr para um dispositivo tun, se o gso_type em virtio_net_hdr for SKB_GSO_UDP e o gso_size for menor que o tamanho do udphdr, pode ocorrer a seguinte falha:

------------[ cut here ]------------
kernel BUG at net/core/skbuff.c:4572! Oops: invalid opcode: 0000 [#1] SMP NOPTI
CPU: 0 UID: 0 PID: 62 Comm: mytest Not tainted 6.16.0-rc7 #203 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 RIP: 0010:skb_segment+0x109/0x110 net/core/skbuff.c:4572 Call Trace: <TASK> udp_queue_rcv_one_skb+0x176/0x4b0 net/ipv4/udp.c:2445 udp_queue_rcv_skb+0x155/0x1f0 net/ipv4/udp.c:2475 udp_unicast_rcv_skb+0x71/0x90 net/ipv4/udp.c:2626 __udp4_lib_rcv+0x433/0xb00 net/ipv4/udp.c:2690 ip_protocol_deliver_rcu+0xa6/0x160 net/ipv4/ip_input.c:205 ip_local_deliver_finish+0x72/0x90 net/ipv4/ip_input.c:233 ip_sublist_rcv_finish+0x5f/0x70 net/ipv4/ip_input.c:579 ip_sublist_rcv+0x122/0x1b0 net/ipv4/ip_input.c:636 ip_list_rcv+0xf7/0x130 net/ipv4/ip_input.c:670 __netif_receive_skb_list_core+0x21d/0x240 net/core/dev.c:6067 netif_receive_skb_list_internal+0x186/0x2b0 net/core/dev.c:6210 napi_complete_done+0x78/0x180 net/core/dev.c:6580 tun_get_user+0xa63/0x1120 drivers/net/tun.c:1909 tun_chr_write_iter+0x65/0xb0 drivers/net/tun.c:1984 vfs_write+0x300/0x420 fs/read_write.c:593 ksys_write+0x60/0xd0 fs/read_write.c:686 do_syscall_64+0x50/0x1c0 arch/x86/entry/syscall_64.c:63 </TASK>

Para acionar o segmento GSO em udp_queue_rcv_skb(), também devemos definir a opção UDP_ENCAP_ESPINUDP para habilitar udp_sk(sk)->encap_rcv. Quando o gancho encap_rcv retorna 1 em udp_queue_rcv_one_skb(), udp_csum_pull_header() tentará remover o udphdr, mas o tamanho do skb foi segmentado para o tamanho GSO, o que leva a esta falha.

O commit anterior cf329aa42b66 ("udp: lidar com redirecionamento incorreto de pacotes GRO UDP") introduziu a segmentação no caminho de recebimento UDP apenas para GRO, o que nunca foi destinado a ser usado para UFO, portanto, descarte pacotes UFO em udp_rcv_segment().

Once again VulDB remains the best source for vulnerability data.

Responsável

Linux

Reservar

16/04/2025

Divulgação

22/08/2025

Moderação

aceite

Entrada

VDB-321117

CPE

pronto

EPSS

0.00160

KEV

não

Atividades

muito baixo

Fontes

Do you need the next level of professionalism?

Upgrade your account now!