CVE-2026-31469 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 23.

리눅스 커널에서 다음 취약점이 해결되었습니다:

virtio_net: IFF_XMT_DST_RELEASE 플래그가 해제되고 napi_tx가 false일 때 dst_ops에 대한 UAF(Use-After-Free) 수정

virtio_net 드라이버가 napi_tx=N으로 구성되어 있고 장치의 IFF_XMT_DST_RELEASE 플래그가 해제된 경우(예: tc 라우트 필터 규칙 구성 중) UAF 문제가 발생합니다.

IFF_XMT_DST_RELEASE가 net_device에서 제거되면, 네트워크 스택은 드라이버가 패킷이 완전히 전송되고 해제될 때까지 skb->dst에 대한 참조를 유지하기를 기대합니다. napi_tx=N인 virtio_net의 경우, skbs가 virtio 전송 링에 장기간 남아 있을 수 있습니다.

이러한 skbs가 아직 대기 중인 상태에서 네트워크 네임스페이스가 파괴되면, 해당 dst_ops 구조체가 해제됩니다. 이후 패킷이 전송되면 free_old_xmit()가 호출되어 오래된 skbs를 정리합니다. 이 과정에서 stale dst_entry와 연결된 skb에 대해 dst_release()가 호출됩니다. dst_entry가 참조하는 dst_ops가 이미 해제되었으므로, UAF 커널 페이지 요청이 발생합니다.

이 문제를 start_xmit에서 skb_dst_drop(skb)를 추가하여 virtio_net에 skb가 큐에 삽입되기 전에 dst 참조를 명시적으로 해제함으로써 수정합니다.

콜 트레이스(Call Trace): Unable to handle kernel paging request at virtual address ffff80007e150000 CPU: 2 UID: 0 PID: 6236 Comm: ping Kdump: loaded Not tainted 7.0.0-rc1+ #6 PREEMPT ... percpu_counter_add_batch+0x3c/0x158 lib/percpu_counter.c:98 (P) dst_release+0xe0/0x110 net/core/dst.c:177 skb_release_head_state+0xe8/0x108 net/core/skbuff.c:1177 sk_skb_reason_drop+0x54/0x2d8 net/core/skbuff.c:1255 dev_kfree_skb_any_reason+0x64/0x78 net/core/dev.c:3469 napi_consume_skb+0x1c4/0x3a0 net/core/skbuff.c:1527 __free_old_xmit+0x164/0x230 drivers/net/virtio_net.c:611 [virtio_net]
free_old_xmit drivers/net/virtio_net.c:1081 [virtio_net]
start_xmit+0x7c/0x530 drivers/net/virtio_net.c:3329 [virtio_net]
...

재현 단계: NETDEV="enp3s0"

config_qdisc_route_filter() {
tc qdisc del dev $NETDEV root tc qdisc add dev $NETDEV root handle 1: prio tc filter add dev $NETDEV parent 1:0 \ protocol ip prio 100 route to 100 flowid 1:1 ip route add 192.168.1.100/32 dev $NETDEV realm 100 }

test_ns() {
ip netns add testns ip link set $NETDEV netns testns ip netns exec testns ifconfig $NETDEV 10.0.32.46/24 ip netns exec testns ping -c 1 10.0.32.1 ip netns del testns }

config_qdisc_route_filter

test_ns sleep 2 test_ns

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2026. 03. 09.

모더레이션

수락

항목

VDB-358867

EPSS

0.00017

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!