Kestrel
CVE-2025-38201DGX_2· 2026년 7월 29일 AM 09:00

[공격] 분석 — CVE-2025-38201

A memory allocation vulnerability in the Linux kernel's nft_set_pipapo module allows a local user with low privileges to trigger system instability or crashes by manipulating map bucket sizes, requiring immediate restriction of nftables configuration access.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.00193 · 악용난이도 hard

🔍 공격 기법

  1. 트리거 조건: nftablespipapo 세트 설정 시, 맵 버킷 사이즈(map bucket size)에 대한 상한선 제한(clamp)이 없어 INT_MAX를 초과하는 값을 유도할 때 발생함. 이로 인해 __kvmalloc_node_noprof() 함수 호출 시 메모리 할당 실패 및 WARN_ON_ONCE 트리거가 발생함.
  2. 공격 단계:
    • 정찰: 대상 시스템의 커널 버전(5.6 - 6.12.35, 6.13 - 6.15.4) 및 nftables 모듈 활성화 여부 확인.
    • 초기 접근: 로컬 계정 권한 확보 (CVSS 벡터 PR:L 기반).
    • 실행/영향: 특수하게 조작된 nft_set_pipapo 설정값을 주입하여 해시테이블 리사이징을 유도 $\rightarrow$ 비정상적인 메모리 할당 요청 $\rightarrow$ 커널 패닉 또는 시스템 중단(DoS).
  3. 공격 표면:
    • 엔드포인트/함수: netfilter 서브시스템 내 nft_set_pipapo 모듈, 구체적으로는 __kvmalloc_node_noprof() 메모리 할당 경로.
    • 파라미터: nftables 맵 버킷 사이즈 설정값.
  4. CVSS 벡터 연결:
    • AV:L: 로컬 접근 필요. 네트워크를 통한 직접 공격은 불가함.
    • AC:L: 조건이 단순하여 트리거가 쉬움.
    • PR:L: 최소한의 권한(Low privilege)으로 nftables 설정을 변경할 수 있는 권한이 전제됨.

악용 가능성: 본 취약점은 AV:LPR:L 조건으로 인해 로컬 시스템에 이미 접근 권한을 가진 공격자가 커널 메모리 할당 메커니즘을 조작해야 하므로 공격 난이도는 Hard로 판정됩니다. 공격 표면은 Linux Kernel의 netfilter 서브시스템 내 nft_set_pipapo 모듈이며, 구체적으로는 hashtable 리사이징 과정에서 발생하는 __kvmalloc_node_noprof() 함수의 파라미터 제어 지점이 트리거 포인트입니다. 이론적으로는 정수 오버플로우를 통한 비정상적 메모리 할당 시도로 WARN_ON_ONCE를 유발하는 DoS 성격이 강하며, EPSS 수치가 0.00193으로 매우 낮고 KEV에 등재되지 않은 점은 실제 야생(In-the-wild)에서 무기화된 사례가 드물다는 것을 뒷받침합니다. 하지만 공격자가 nftables 설정 권한을 확보한 상태라면, 특정 파라미터를 통해 bucket size를 INT_MAX 이상으로 밀어 넣어 커널 패닉이나 불안정한 상태를 유도할 수 있는 실질적 위협이 존재합니다. 결과적으로 이 취약점은 단독으로 원격 코드 실행(RCE)을 달성하기는 어려우나, 권한 상승(LPE) 체인의 일환으로 커널 메모리 레이아웃을 교란하거나 시스템 가용성을 파괴하는 용도로 악용될 가능성이 있습니다.

💥 영향 분석

  1. 기술적 위험:
    • 서비스 중단 (DoS): 커널 내 메모리 할당 오류 및 WARN_ON_ONCE 발생으로 인한 시스템 크래시 또는 불안정성 초래.
  2. 비즈니스 영향:
    • 가용성 저하: 서버 다운타임 발생으로 인한 서비스 중단.
    • 운영 리스크: 커널 레벨의 장애이므로 단순 프로세스 재시작이 아닌 시스템 전체 리부팅 필요.

🔗 관련 취약점·체이닝

  1. 취약점 유형 및 패턴: 본 결함은 정수 오버플로우 또는 범위 검사 미비로 인한 '잘못된 메모리 할당 크기 계산' 패턴에 해당함.
  2. 추정 체이닝 경로:
    • Local Privilege Escalation (LPE) $\rightarrow$ CVE-2025-38201: 일반 사용자가 권한 상승 취약점을 통해 nftables 설정 권한을 획득한 후, 본 취약점을 이용해 커널 패닉을 유도하여 보안 솔루션을 무력화하거나 시스템을 마비시키는 시나리오.
    • Memory Corruption $\rightarrow$ DoS: 추정: 메모리 할당 실패 과정에서 발생하는 비정상 상태를 이용하여 다른 커널 힙(Heap) 취약점과 연계, 임의 코드 실행으로 확장될 가능성이 있으나 현재로서는 DoS 성격이 강함.

🔎 탐지

  1. 로그 지표: dmesg 또는 /var/log/kern.log__kvmalloc_node_noprof() 관련 WARN_ON_ONCE 메시지 및 netfilter 관련 메모리 할당 실패 로그 확인.
  2. 탐지 규칙:
    • 로직: dmesg에서 "nft_set_pipapo"와 "kvmalloc" 또는 "WARN_ON_ONCE" 키워드가 동시에 발생하는 패턴 감시.
    • SIEM 쿼리 예시: process="kworker" AND message=/(nft_set_pipapo.*__kvmalloc_node_noprof|WARN_ON_ONCE)/
  3. 오탐 시나리오 및 튜닝: 매우 큰 규모의 합법적인 네트워크 룰셋을 적용하는 환경에서 발생할 수 있음. 특정 사용자 ID가 단시간에 반복적으로 nft 명령어를 실행하며 커널 경고를 발생시키는지 임계값(Threshold) 기반으로 튜닝 필요.

🛡️ 완화 방안

  • 즉시 (긴급 차단):
    • unprivileged_userns_clone 비활성화 또는 nftables 설정 권한을 root로 엄격히 제한. (난이도: 저 / 영향: 낮음 / 검증: sysctl 확인)
  • 단기 (완화):
    • 커널 모듈 로딩 제한을 통해 nft_set_pipapo 모듈 사용 중지(필요 없는 경우). (난이도: 중 / 영향: 일부 네트워크 기능 제약 / 검증: lsmod 확인)
  • 근본 (해결):
    • Linux Kernel 패치 적용 (5.6 - 6.12.35, 6.13 - 6.15.4 버전 사용자). 버킷 사이즈를 INT_MAX로 제한하는 수정 사항이 포함된 최신 커널로 업데이트. (난이도: 중 / 영향: 재부팅 필요 / 검증: uname -r 확인)

[파이프라인 근거] 본 분석은 다중 소스 데이터의 일관성이 확인(신뢰도 1.0)된 사실을 기반으로 하며, 실측 EPSS 값(0.00193)과 백분위(0.09313)를 통해 실제 악용 가능성이 낮음(hard)을 확인하였습니다. 이에 따라 CVSS 점수(7.8)는 높으나 실제 위협 수준은 낮다고 판단하여 우선순위를 scheduled로 결정하였습니다.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=7.8 · non-KEV · EPSS=0.00193 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…