🔍 CVE-2026-43186

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

🇰🇷 한글 설명

Linux 커널의 IPv6 IOAM 패킷 처리 함수 __ioam6_fill_trace_data()에서 nodelen 필드를 type 필드와 검증하지 않아 발생하는 힙 버퍼 오버플로우 취약점입니다. 공격자가 조작된 패킷을 전송하여 ~100바이트를 할당된 메모리 이상으로 쓸 수 있으며, 이로 인해 인접한 힙 메모리가 손상되고 커널 패닉이 발생합니다.

💡 쉬운 설명

Linux가 특정 네트워크 패킷의 크기 정보를 제대로 검증하지 않아서, 공격자가 작은 크기를 지정하면서 큰 데이터를 쓰도록 강제할 수 있습니다. 이로 인해 컴퓨터의 커널이 crash합니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ipv6: ioam: fix heap buffer overflow in __ioam6_fill_trace_data() On the receive path, __ioam6_fill_trace_data() uses trace->nodelen to decide how much data to write for each node. It trusts this field as-is from the incoming packet, with no consistency check against trace->type (the 24-bit field that tells which data items are present). A crafted packet can set nodelen=0 while setting type bits 0-21, causing the function to write ~100 bytes past the allocated region (into skb_shared_info), which corrupts adjacent heap memory and leads to a kernel panic. Add a shared helper ioam6_trace_compute_nodelen() in ioam6.c to derive the expected nodelen from the type field, and use it: - in ioam6_iptunnel.c (send path, existing validation) to replace the open-coded computation; - in exthdrs.c (receive path, ipv6_hop_ioam) to drop packets whose nodelen is inconsistent with the type field, before any data is written. Per RFC 9197, bits 12-21 are each short (4-octet) fields, so they are included in IOAM6_MASK_SHORT_FIELDS (changed from 0xff100000 to 0xff1ffc00).

📍 영향받는 시스템

모든 Linux kernel 버전 (CVE 공개 당시까지 미패치 상태)

⚔️ 공격 벡터

조작된 IPv6 IOAM 패킷을 네트워크를 통해 전송하여 원격에서 DoS 공격 수행

🛡️ 대응 방법

Linux kernel을 최신 보안 패치가 적용된 버전으로 업그레이드

🔧 검증 코드

설치된 커널 패키지 정보와 현재 실행 중인 커널 버전을 확인한 후, 공식 Linux 보안 공지에서 해당 버전이 패치되었는지 확인하세요

Shell / Script
dpkg -l linux-image-generic 2>/dev/null | grep -E 'ii' && 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