🔍 CVE-2026-43037

9.8
CVSS Score
CRITICAL
2026-05-01
2026-10-19 20:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ip4ip6_err() 함수에서 IPv6 수신 경로의 데이터가 포함된 skb2->cb[] 영역을 초기화하지 않아 발생하는 취약점입니다. 이로 인해 IPv4와 IPv6의 데이터 구조 차이로 인한 메모리 레이아웃 불일치가 발생하며, 공격자가 제어하는 패킷 데이터를 통해 스택 버퍼 오버플로우가 유발될 수 있습니다.

💡 쉬운 설명

네트워크 데이터를 처리하는 과정에서 IPv6 정보를 IPv4 정보로 잘못 해석하여 메모리 공간을 넘쳐나게 만드는 오류입니다. 공격자가 특수하게 조작된 패킷을 보내면 시스템의 중요한 정보를 훔치거나 제어권을 탈취할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ip6_tunnel: clear skb2->cb[] in ip4ip6_err() Oskar Kjos reported the following problem. ip4ip6_err() calls icmp_send() on a cloned skb whose cb[] was written by the IPv6 receive path as struct inet6_skb_parm. icmp_send() passes IPCB(skb2) to __ip_options_echo(), which interprets that cb[] region as struct inet_skb_parm (IPv4). The layouts differ: inet6_skb_parm.nhoff at offset 14 overlaps inet_skb_parm.opt.rr, producing a non-zero rr value. __ip_options_echo() then reads optlen from attacker-controlled packet data at sptr[rr+1] and copies that many bytes into dopt->__data, a fixed 40-byte stack buffer (IP_OPTIONS_DATA_FIXED_SIZE). To fix this we clear skb2->cb[], as suggested by Oskar Kjos. Also add minimal IPv4 header validation (version == 4, ihl >= 5).

📍 영향받는 시스템

Linux Kernel (ip4ip6_err() 함수를 사용하는 IPv4-in-IPv6 터널링 관련 버전)

⚔️ 공격 벡터

조작된 IPv6 패킷을 전송하여 커널의 스택 버퍼 오버플로우 유발

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 skb2->cb[] 초기화 및 IPv4 헤더 검증 로직 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 배포판 보안 공지를 통해 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel