🇰🇷 한글 설명
Linux 커널의 net/sched: sch_netem 모듈에서 패킷 손상 로직 처리 중 경계 외 메모리 접근(Out-of-bounds access) 취약점이 발견되었습니다. AF_PACKET TX_RING을 통해 IPIP 터널로 비선형 패킷을 전송할 때 skb_headlen이 0이 되어, 잘못된 난수 값이 오프셋으로 사용되면서 발생합니다.
💡 쉬운 설명
네트워크 패킷을 일부러 망가뜨리는 기능에서 계산 오류가 발생하여, 허용되지 않은 메모리 영역을 건드릴 수 있는 문제입니다. 이로 인해 시스템이 불안정해지거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_netem: fix out-of-bounds access in packet corruption
In netem_enqueue(), the packet corruption logic uses
get_random_u32_below(skb_headlen(skb)) to select an index for
modifying skb->data. When an AF_PACKET TX_RING sends fully non-linear
packets over an IPIP tunnel, skb_headlen(skb) evaluates to 0.
Passing 0 to get_random_u32_below() takes the variable-ceil slow path
which returns an unconstrained 32-bit random integer. Using this
unconstrained value as an offset into skb->data results in an
out-of-bounds memory access.
Fix this by verifying skb_headlen(skb) is non-zero before attempting
to corrupt the linear data area. Fully non-linear packets will silently
bypass the corruption logic.
📍 영향받는 시스템
Linux kernel (net/sched: sch_netem 모듈을 사용하는 시스템)
⚔️ 공격 벡터
AF_PACKET TX_RING을 사용하여 IPIP 터널로 특정 형태의 비선형 패킷을 전송하여 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 skb_headlen 검증 로직을 적용해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인
📊 CVSS Vector String
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
💻 영향받는 소프트웨어
IBM Security Verify Access