CVE-2026-64114 in Linux정보

요약

\~에 의해 VulDB • 2026. 07. 20.

리눅스 커널에서 다음 취약점이 해결되었습니다:

ipv4: raw: ihl < 5인 IP_HDRINCL 패킷 거부

raw_send_hdrinc()는 호출자가 제공한 IPv4 헤더가 메시지 길이 내에 맞는지 검증합니다:

iphlen = iph->ihl * 4; err = -EINVAL; if (iphlen > length) goto error_free;

if (iphlen >= sizeof(*iph)) {
/* saddr, tot_len, id, csum, transport_header 수정 */ }

그러나 이 코드는 ihl < 5인 경우를 거부하지 않습니다. 이러한 패킷의 경우 "if (iphlen >= sizeof(*iph))" 분기가 건너뛰어져 조작된 iphdr가 그대로 유지되지만, 패킷은 여전히 __ip_local_out()으로 전달되어 이후 단계로 진행됩니다. downstream에서 iph->ihl을 읽는 구성 요소들은 정상적인 값을 가정합니다: 특히 net/ipv4/ah4.c의 ah_output() 함수에서는 top_iph->ihl * 4에서 sizeof(struct iphdr)를 빼고, 그 결과(부호 있는 정수 음수 값이 size_t로 캐스팅됨)를 memcpy()에 전달하여 SIZE_MAX에 가까운 길이의 OOB(out-of-bounds) 접근과 호스트 커널 패닉을 유발합니다.

ihl < 5인 IPv4 헤더는 정의상 잘못되었습니다(RFC 791: "인터넷 헤더 길이(internet header length)는 인터넷 헤더의 길이를 32비트 단위로 나타낸 값입니다... 올바른 헤더에 대한 최소값은 5임" 참고). 커널은 이러한 패킷을 자체 출력 경로(output path)로 주입해서는 안 됩니다.

기존 "iphlen > length" 검사 alongside "iphlen < sizeof(*iph)" 검사를 추가하여 거부합니다. 이는 로컬에서 생성된 패킷이 IP 스택으로 다시 진입할 때 외부 패킷에 적용되는 것과 동일한 기본 무결성 테스트(sanity tests)를 통과해야 한다는 원칙과 일치합니다.

이 수정 사항이 반영되면, fixup 분기를 감싸고 있는 "if (iphlen >= sizeof(*iph))" 래퍼는 불필요해집니다. 패치를 최소화하고 백포트(backport) 호환성을 유지하기 위해 해당 코드는 그대로 남겨두었습니다. 추후 별도 작업을 통해 이를 제거할 수 있습니다.

커밋 86f4c90a1c5c("ipv4, ipv6: raw 소켓 메시지가 IP 헤더를 담을 만큼 충분히 큰지 확인")는 메시지 버퍼가 iphdr를 담을 만큼 충분한 크기를 갖도록 보장하지만, self-reported인 iph->ihl 값에는 제약을 두지 않습니다.

접근 가능성(reachability): 잘못된 패킷의 출처는 CAP_NET_RAW 권한이 있는 모든 호출자이며, 여기서는 CONFIG_USER_NS=y 설정이 적용된 커널에서 user+net 네임스페이스 내 비특권 프로세스도 포함됩니다. 재현된 AH 충돌은 추가로 송신 라우트에 일치하는 xfrm AH 정책이 필요합니다. CAP_NET_ADMIN 권한을 부여받은 컨테이너는 해당 상태와 정책을 자신의 netns에 설치할 수 있습니다. 루프백 인터페이스는 xfrm_output를 우회하므로, 트리거(trigger)에는 실제 네트워크 디바이스(netdev)가 사용됩니다.

UML + KASAN 환경에서 재현됨: addr 0x0 주소에서 커널 모드 오류 발생, 충돌 지점에서 memcpy_orig 호출. 동일한 형태의 취약점이 --cap-add NET_ADMIN 옵션을 사용하여 루트리스(rootless) Docker 컨테이너 내에서 기본 배포판 커널에서도 재현됩니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2026. 07. 19.

모더레이션

수락

항목

VDB-380228

EPSS

0.00000

활동

낮음

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!