English Advisory →
CVE-2026-533627.8/HIGHCISA KEV 등재CWE-787CWE-122

리눅스 커널 IPv6 소켓 메모리 손상 취약점 (CVE-2026-53362) 분석 및 대응 가이드

영향받는 벤더 / 생태계
linux
대상 컴포넌트 / 패키지
linux_kernel
권고문 발행일
2026-07-04

실무자 핵심 요약 (Executive Summary)

SECOPS ASSESSMENT
영향 대상

MSG_MORE 및 MSG_SPLICE_PAGES 플래그를 사용하는 UDPv6 소켓 통신 환경의 리눅스 커널 시스템

파급 효과

로컬의 일반 권한 사용자가 특수하게 조작된 UDPv6 패킷을 전송하여 커널 힙 메모리를 손상시키고, 시스템 크래시(DoS) 유발 및 커널 권한 획득(LPE) 가능

권장 조치

배포판별 최신 안정화 커널 패치를 적용하고, 즉각적인 패치가 불가능한 경우 비특권 사용자의 네임스페이스 생성을 제한하거나 관련 소켓 옵션 사용을 모니터링하십시오

영향받는 제품 및 버전 범위

리눅스 커널 (커밋 `773ba4fe9104` 도입 이후부터 패치 커밋 적용 이전 버전까지) * UDPv6 및 MSG_SPLICE_PAGES 기능을 사용하는 모든 리눅스 배포판 환경

권장 패치 및 임시 완화(Workaround) 가이드

PATCH & WORKAROUND

1. 커널 패치 적용 (권장)

리눅스 커널 소스 트리에 반영된 공식 패치를 적용하여 커널을 재빌드하거나, 배포판(Ubuntu, RedHat, Debian 등)의 최신 보안 업데이트 패키지를 적용하십시오.

패치 핵심 변경 사항 (`__ip6_append_data`):

c
// paged 할당 경로에서 fraggap을 alloclen에 더하고 pagedlen에서 차감하도록 수정
alloclen += fraggap;
pagedlen -= fraggap;

2. 임시 완화 조치 (Workaround)

즉각적인 커널 업데이트 및 재부팅이 어려운 환경에서는 비특권 사용자의 사용자 네임스페이스(User Namespace) 생성을 제한하여 공격 표면을 줄일 수 있습니다.

bash
# sysctl 설정을 통한 비특권 사용자 네임스페이스 생성 제한
sudo sysctl -w kernel.unprivileged_userns_clone=0

# 영구 적용
echo "kernel.unprivileged_userns_clone=0" | sudo tee -a /etc/sysctl.d/99-disable-userns.conf
권장 아키텍처 방어 통제 (Recommended Security Control)
SentinelOne Singularity AI EDR
커널 메모리 손상을 방지하기 위해 즉시 시스템 커널을 최신 안정 버전으로 업데이트하고 재부팅을 수행하십시오.

패치 재부팅 전까지 서버와 엔드포인트를 노리는 커널 권한 상승(LPE) 공격을 AI 행위 탐지로 차단하세요

Windows 및 Linux 서버의 긴급 OS 패치에는 점검 창(Maintenance Window)이 필요합니다. 패치 전까지 비정상 프로세스 생성과 메모리 악용을 실시간으로 격리하세요.

MITRE ATT&CK 100% 탐지 · 1클릭 자동 롤백

취약점 발생 원리 및 공격 메커니즘

본 취약점(CVE-2026-53362)은 리눅스 커널의 IPv6 구현부 중 __ip6_append_data() 함수에서 발생하는 힙 기반 버퍼 오버플로우(CWE-787, CWE-122) 취약점입니다.

발생 원인 및 공격 메커니즘

  • 잘못된 메모리 크기 계산 (Bad Accounting): __ip6_append_data()에서 페이지 할당 경로(Paged-allocation path, MSG_MORE / NETIF_F_SG / 대형 fraglen 조건 충족 시)가 활성화될 때, alloclen과 pagedlen 변수가 다음과 같이 계산됩니다:
  • alloclen = fragheaderlen + transhdrlen;
  • pagedlen = datalen - transhdrlen;
  • Fraggap 누락: datalen은 이미 이전 단편화 갭(fraggap)을 포함하고 있습니다 (datalen = length + fraggap). fraggap이 0이 아닐 때(즉, 첫 번째 skb가 아닐 때) transhdrlen은 0이 됩니다.
  • 버퍼 오버런: 이전 skb로부터 이월된 fraggap 바이트들이 새 skb의 선형 영역(Linear area) 내 단편 헤더 바로 뒤에 복사됩니다. 그러나 선형 영역의 크기는 fraggap 바이트만큼 과소평가(Undersized)되어 할당된 반면, pagedlen은 동일한 크기만큼 과대평가되어 계산됩니다.
  • 메모리 오염: 이로 인해 복사 작업 시 할당된 버퍼의 끝(skb->end)을 초과하여 뒤따르는 skb_shared_info 구조체 영역을 침범하여 덮어쓰게 됩니다.

비특권 로컬 사용자는 UDPv6 소켓에서 MSG_MORE와 MSG_SPLICE_PAGES 플래그를 조합하여 이 취약점을 안정적으로 트리거할 수 있으며, 이는 시스템 권한 상승(LPE)으로 이어질 수 있습니다.

공식 보안 권고문 및 참조 링크

NVD Original English Description

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.

SecOps Advisory Dispatch & RSS Feed

일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독

보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.

Slack / Teams / RSS 리더 연동: