🇰🇷 한글 설명
Linux 커널의 IPv6 IOAM 처리 과정에서 발생하는 NULL 포인터 역참조 취약점입니다. 네트워크 인터페이스가 해제되는 동안 ipv6_hop_ioam() 함수가 유효하지 않은 포인터에 접근하여 시스템 충돌을 일으킬 수 있습니다.
💡 쉬운 설명
네트워크 연결이 끊기는 찰나의 순간에 컴퓨터가 잘못된 메모리 주소를 참조하여 시스템이 멈추거나 오류가 발생할 수 있는 문제입니다. 특정 네트워크 옵션을 처리할 때 발생하는 프로그래밍 실수로 인해 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ipv6: ioam: add NULL check for idev in ipv6_hop_ioam()
Reported by Sashiko:
The function ipv6_hop_ioam() accesses
__in6_dev_get(skb->dev)->cnf.ioam6_enabled without validating the returned
idev pointer. Because addrconf_ifdown() can concurrently clear dev->ip6_ptr
via RCU, __in6_dev_get() can return NULL during interface teardown, which
could cause a NULL pointer dereference when processing an IOAM Hop-by-Hop
option.
Let's add a check and use SKB_DROP_REASON_IPV6DISABLED accordingly.
📍 영향받는 시스템
IPv6 IOAM 기능이 활성화된 Linux 커널 버전
⚔️ 공격 벡터
네트워크 인터페이스 해제 시점과 맞물린 특수하게 조작된 IPv6 IOAM Hop-by-Hop 옵션 패킷 전송
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 취약점이 패치된 최신 보안 업데이트 버전인지 확인