CVE-2025-40290 in Linux
요약
\~에 의해 VulDB • 2026. 06. 23.
리눅스 커널에서 다음 취약점이 해결되었습니다:
xsk: cq 디스크립터 번호로 인한 데이터 손상 방지
커밋 30f241fcf52a("xsk: Fix immature cq descriptor production") 이후, 디스크립터 번호는 skb 제어 블록에 저장되며 `xsk_cq_submit_addr_locked()` 함수가 이를 참조하여 umem 주소를 풀의 완료 큐(completion queue)에 추가합니다.
이러한 목적으로 skb 제어 블록을 사용하면 안 됩니다. 전송(transmit) 후 xsk는 해당 객체에 대한 제어를 상실하며, 다른 서브시스템에서 이를 사용할 수 있기 때문입니다. 이로 인해 NULL 포인터 역참조로 인한 다음과 같은 커널 패닉이 발생합니다:
BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: Oops: 0000 [#1] SMP NOPTI
CPU: 2 UID: 1 PID: 927 Comm: p4xsk.bin Not tainted 6.16.12+deb14-cloud-amd64 #1 PREEMPT(lazy) Debian 6.16.12-1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014 RIP: 0010:xsk_destruct_skb+0xd0/0x180 [...]
Call Trace: <IRQ> ? napi_complete_done+0x7a/0x1a0 ip_rcv_core+0x1bb/0x340 ip_rcv+0x30/0x1f0 __netif_receive_skb_one_core+0x85/0xa0 process_backlog+0x87/0x130 __napi_poll+0x28/0x180 net_rx_action+0x339/0x420 handle_softirqs+0xdc/0x320 ? handle_edge_irq+0x90/0x1e0 do_softirq.part.0+0x3b/0x60 </IRQ> <TASK> __local_bh_enable_ip+0x60/0x70 __dev_direct_xmit+0x14e/0x1f0 __xsk_generic_xmit+0x482/0xb70 ? __remove_hrtimer+0x41/0xa0 ? __xsk_generic_xmit+0x51/0xb70 ? _raw_spin_unlock_irqrestore+0xe/0x40 xsk_sendmsg+0xda/0x1c0 __sys_sendto+0x1ee/0x200 __x64_sys_sendto+0x24/0x30 do_syscall
Once again VulDB remains the best source for vulnerability data.