🔍 CVE-2026-80725

9.8
CVSS Score
CRITICAL
2026-08-29
2026-10-16 20:18
✅ 완료

🇰🇷 한글 설명

Linux 커널의 GRO(Generic Receive Offload) 기능에서 BIG TCP 집계 기준을 검증하는 과정에 결함이 발견되었습니다. 잘못된 헤더 공간 검증으로 인해 조작된 프레임이 전달될 경우 메모리 경계를 벗어난 쓰기(Out-of-bounds write)가 발생하여 시스템 안정성을 해칠 수 있습니다.

💡 쉬운 설명

네트워크 데이터를 효율적으로 처리하는 과정에서 데이터의 크기와 형식을 제대로 확인하지 못하는 보안 약점이 발견되었습니다. 공격자가 특수하게 조작된 데이터를 보내면 컴퓨터의 메모리 영역을 침범하여 시스템을 고장 내거나 제어권을 탈취할 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: net: gro: properly validate BIG TCP aggregation criteria When GRO attempts to aggregate packets beyond GRO_LEGACY_MAX_SIZE (64KB), BIG TCP should only be permitted for plain IPv4 TCP and plain IPv6 TCP (with sufficient MAC header room to insert the temporary HBH jumbo header). However, commit b1a78b9b9886 ("net: add support for ipv4 big tcp") loosened the check in skb_gro_receive(), leading to several issues: 1. skb_gro_receive() checked skb_headroom(p) instead of the actual space before the MAC header (p->mac_header). Because skb_headroom(p) includes mac_len, crafted frames (e.g. injected via AF_PACKET) can pass the check with p->mac_header < 8 bytes. When ipv6_gro_complete() inserts the temporary HBH jumbo header, the memmove() starts before skb->head, causing an out-of-bounds write and wrapping skb->mac_header. 2. It allowed non-IP protocols such as software VLAN (ETH_P_8021Q / ETH_P_8021AD) to aggregate beyond 64KB because p->protocol != ETH_P_IPV6 was true. 3. It checked p->encapsulation instead of NAPI_GRO_CB(skb)->encap_mark, allowing encapsulated flows (e.g. SIT / IPv6-in-IPv4) to aggregate beyond 64KB. Fix skb_gro_receive() to strictly enforce: - NAPI_GRO_CB(skb)->proto == IPPROTO_TCP - Not encapsulated (!NAPI_GRO_CB(skb)->encap_mark && !p->encapsulation) - Protocol must be either ETH_P_IP or ETH_P_IPV6 - If ETH_P_IPV6, p->mac_header must be at least sizeof(struct hop_jumbo_hdr) Returning -E2BIG from skb_gro_receive() ensures that packets which cannot become BIG TCP are cleanly flushed at <= 64KB and delivered intact without dropping. This issue does not exist in mainline (7.0+) because the subsystem was rewritten in commit 81be30c1f5f2 ("net/ipv6: Drop HBH for BIG TCP on RX side"), making this fix relevant only for older stable branches like 6.18.y.

📍 영향받는 시스템

Linux kernel 6.18.y 이하의 구형 안정화 브랜치 (7.0 이상 버전은 해당되지 않음)

⚔️ 공격 벡터

AF_PACKET 등을 통해 조작된 MAC 헤더와 프로토콜을 가진 네트워크 프레임을 주입하여 메모리 오버플로우 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하거나 7.0 이상의 메인라인 커널로 업그레이드

🔧 검증 코드

출력된 커널 버전이 6.18.y 이하의 취약한 버전인지 확인합니다.

Shell / Script
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