🔍 CVE-2025-38192

7.8
CVSS Score
HIGH
2025-07-04
2026-10-15 22:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 네트워크 스택에서 skb 프로토콜을 변경할 때 기존의 dst(목적지) 정보를 제대로 초기화하지 않아 발생하는 취약점입니다. NAT46 BPF 프로그램을 통해 IPv4 패킷을 IPv6로 무분별하게 변환할 경우, 커널이 잘못된 목적지 정보를 참조하여 NULL 포인터 역참조를 일으키고 시스템이 충돌(Crash)할 수 있습니다.

💡 쉬운 설명

네트워크 패킷의 형식을 바꿀 때 이전 정보가 남아 있어 컴퓨터가 길을 잃고 멈춰버리는 문제입니다. 특정 네트워크 설정(BPF)을 사용하는 환경에서 패킷이 들어오면 시스템이 갑자기 꺼질 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: clear the dst when changing skb protocol A not-so-careful NAT46 BPF program can crash the kernel if it indiscriminately flips ingress packets from v4 to v6: BUG: kernel NULL pointer dereference, address: 0000000000000000 ip6_rcv_core (net/ipv6/ip6_input.c:190:20) ipv6_rcv (net/ipv6/ip6_input.c:306:8) process_backlog (net/core/dev.c:6186:4) napi_poll (net/core/dev.c:6906:9) net_rx_action (net/core/dev.c:7028:13) do_softirq (kernel/softirq.c:462:3) netif_rx (net/core/dev.c:5326:3) dev_loopback_xmit (net/core/dev.c:4015:2) ip_mc_finish_output (net/ipv4/ip_output.c:363:8) NF_HOOK (./include/linux/netfilter.h:314:9) ip_mc_output (net/ipv4/ip_output.c:400:5) dst_output (./include/net/dst.h:459:9) ip_local_out (net/ipv4/ip_output.c:130:9) ip_send_skb (net/ipv4/ip_output.c:1496:8) udp_send_skb (net/ipv4/udp.c:1040:8) udp_sendmsg (net/ipv4/udp.c:1328:10) The output interface has a 4->6 program attached at ingress. We try to loop the multicast skb back to the sending socket. Ingress BPF runs as part of netif_rx(), pushes a valid v6 hdr and changes skb->protocol to v6. We enter ip6_rcv_core which tries to use skb_dst(). But the dst is still an IPv4 one left after IPv4 mcast output. Clear the dst in all BPF helpers which change the protocol. Try to preserve metadata dsts, those may carry non-routing metadata.

📍 영향받는 시스템

Linux Kernel (NAT46 BPF를 사용하는 환경)

⚔️ 공격 벡터

네트워크 인그레스(Ingress) 단계에서 IPv4를 IPv6로 변환하는 특수하게 조작된 BPF 프로그램 실행

🛡️ 대응 방법

프로토콜 변경 시 dst 정보를 초기화하는 패치가 적용된 최신 Linux 커널로 업데이트

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel