🇰🇷 한글 설명
Linux 커널의 IPv6 구현 중 paged allocation 경로에서 fraggap(파편 간 간격) 계산 오류가 발견되었습니다. 이로 인해 데이터 복사 과정에서 skb의 선형 영역 크기가 부족하게 할당되어 skb_shared_info 영역을 침범하는 메모리 오염이 발생할 수 있습니다.
💡 쉬운 설명
데이터를 쪼개서 보낼 때 계산 실수로 인해 데이터가 들어갈 방보다 더 큰 데이터를 넣으려고 시도하는 문제입니다. 이 과정에서 시스템의 중요한 메모리 영역이 망가질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ipv6: account for fraggap on the paged allocation path
In __ip6_append_data(), when the paged-allocation branch is taken
(MSG_MORE / NETIF_F_SG / large fraglen), alloclen and pagedlen are
computed as
alloclen = fragheaderlen + transhdrlen;
pagedlen = datalen - transhdrlen;
datalen already includes fraggap (datalen = length + fraggap). When
fraggap is non-zero, this is not the first skb and transhdrlen is zero.
The fraggap bytes carried over from the previous skb are copied just past
the fragment headers in the new skb's linear area. The linear area is
therefore undersized by fraggap bytes while pagedlen is overstated by the
same amount, and the copy writes past skb->end into the trailing
skb_shared_info.
An unprivileged user can trigger this via a UDPv6 socket using
MSG_MORE together with MSG_SPLICE_PAGES.
The bad accounting was introduced by commit 773ba4fe9104 ("ipv6:
avoid partial copy for zc"). Before commit ce650a166335 ("udp6: Fix
__ip6_append_data()'s handling of MSG_SPLICE_PAGES"), the negative
copy value caused -EINVAL to be returned. That later commit allowed
MSG_SPLICE_PAGES to proceed in this case, making the corruption
triggerable.
The non-paged branch sets alloclen to fraglen, which already accounts
for fraggap because datalen does. Bring the paged branch in line by
adding fraggap to alloclen and subtracting it from pagedlen.
After this adjustment, copy no longer collapses to -fraggap on the
paged path, so remove the stale comment describing that old arithmetic.
Since a negative copy is no longer expected for a valid MSG_SPLICE_PAGES
case, remove the MSG_SPLICE_PAGES exception from the negative copy check.
📍 영향받는 시스템
Linux Kernel (commit 773ba4fe9104 이후 버전 중 특정 패치가 적용되지 않은 버전)
⚔️ 공격 벡터
권한이 없는 사용자가 UDPv6 소켓을 통해 MSG_MORE 및 MSG_SPLICE_PAGES 플래그를 사용하여 조작된 패킷 전송
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 수정된 최신 버전인지 확인하십시오.
🇰🇷 KISA(한국인터넷진흥원) 보안 권고
이 CVE에 대한 한국 공식 권고 (1건)
Linux 제품 보안 업데이트 권고
P4
📅 2026-08-31 · sec_notice
Linux Kernel에서 발생하는 Out-of-bounds Write 취약점을 해결하기 위한 보안 업데이트가 발표되었습니다. 해당 취약점에 영향을 받는 Linux Kernel 6.0 이상 버전을 사용하는 사용자는 최신 보안 패치가 적용된 버전으로 업데이트를 권고합니다.