🇰🇷 한글 설명
Linux 커널의 IPv4 단편화 과정에서 MTU 크기가 너무 작을 경우 발생하는 취약점입니다. MTU가 헤더 크기보다 작으면 단편화 상태가 업데이트되지 않고 헤더만 계속 생성되어 시스템이 멈추는 소프트락업(softlockup) 현상이 발생합니다.
💡 쉬운 설명
네트워크 데이터 덩어리를 작게 나누는 과정에서 설정값이 너무 작으면 컴퓨터가 무한 루프에 빠져 멈출 수 있는 문제입니다. 이로 인해 시스템이 응답하지 않는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ipv4: reject undersized MTUs in ip_do_fragment()
ip_do_fragment() subtracts the IPv4 header length from the effective
MTU and passes the resulting payload MTU to ip_frag_next().
If the effective MTU is smaller than hlen + 8, ip_frag_next() rounds
the fragment payload length down to zero. The fragmentation state then
never makes forward progress: state->left, state->ptr and state->offset
stay unchanged while ip_do_fragment() keeps allocating and transmitting
header-only fragments until the softlockup detector fires.
This is reproducible with a route installed using "mtu lock 20", but it
is also reproducible without route MTU lock, for example by forwarding a
packet to a device whose MTU is 20.
Fix it in ip_do_fragment() by rejecting mtu < hlen + 8 with -EMSGSIZE,
matching the existing IPv6 fragmentation check.
📍 영향받는 시스템
MTU 설정이 매우 낮은(hlen + 8 미만) 네트워크 환경을 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
매우 작은 MTU를 가진 네트워크 경로를 통해 특수하게 조작된 IPv4 패킷을 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 ip_do_fragment() 함수를 수정
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인