[방어] 분석 — CVE-2025-38201
CVE-2025-38201 is a vulnerability in the Linux kernel's nft_set_pipapo module where failing to clamp map bucket size can lead to memory allocation failures and system instability, requiring immediate restriction of nftables configuration privileges.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00193 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: nft_set_pipapo 모듈 사용 시, 해시 테이블 리사이징 과정에서 맵 버킷 사이즈가 INT_MAX를 초과하여 전달될 때 발생합니다. 이로 인해 __kvmalloc_node_noprof() 함수 내에서 WARN_ON_ONCE가 트리거됩니다.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 및
nftables사용 여부 확인. - 초기 접근: 로컬 사용자 권한 획득 (AV:L, PR:L 조건).
- 실행: 특수하게 조작된 대규모 맵 버킷 사이즈 설정을 포함한
nftables규칙 생성/수정 요청 전송. - 영향: 커널 경고 발생 및 추정: 메모리 할당 실패로 인한 시스템 패닉(Kernel Panic) 또는 서비스 거부 상태 유도.
(3) 공격 표면: Linux 커널의 Netfilter 서브시스템, 특히nft_set_pipapo모듈을 사용하는 네트워크 설정 인터페이스.
(4) CVSS 벡터 연결: AV:L(로컬 접근 필요), AC:L(공격 복잡도 낮음), PR:L(낮은 수준의 권한 필요), UI:N(사용자 상호작용 불필요). 즉, 시스템에 로그인 가능한 일반 사용자 계정이 있다면 공격이 가능합니다.
악용 가능성: 본 취약점의 공격 난이도는 Hard로 평가됩니다. CVSS 벡터상 AV:L 및 PR:L 조건으로 인해, 공격자는 이미 시스템에 로그인한 낮은 권한(Low Privilege) 계정을 확보하여 로컬 환경에서 커널 메모리에 접근할 수 있어야 합니다. 공격 표면은 Linux Kernel의 netfilter 서브시스템 내 nft_set_pipapo 모듈이며, 특히 해시테이블 리사이징 과정에서 발생하는 버킷 크기 계산 파라미터가 트리거 포인트입니다. 이론적으로는 INT_MAX를 초과하는 값을 유도해 커널 패닉(DoS)을 일으킬 수 있으나, EPSS 값이 0.00193으로 매우 낮고 KEV에 등재되지 않은 점은 실제 야생(In-the-wild)에서 악용된 사례가 드물며 공격 시나리오 구성이 까다로움을 시사합니다. 결과적으로 권한 상승이나 원격 실행보다는 로컬 가용성 저해 가능성에 집중된 취약점이며, 일반적인 서버 환경보다 특정 nftables 설정과 특수 모듈을 사용하는 환경에서만 악용 가능성이 존재합니다.
💥 영향 분석
(1) 기술적 위험: 커널 내 메모리 할당 오류로 인한 WARN_ON_ONCE 트리거 및 추정: 이에 따른 커널 패닉(Kernel Panic) 발생으로 시스템 가용성이 완전히 상실되는 서비스 중단(DoS) 위험이 있습니다.
(2) 비즈니스 영향: 서버 다운타임으로 인한 서비스 중단, 인프라 가용성 저하가 예상됩니다. 다만, 로컬 권한이 필요하므로 외부에서 직접적인 침투보다는 내부 위협이나 이미 침투한 공격자의 시스템 무력화 수단으로 활용될 가능성이 큽니다.
🔗 관련 취약점·체이닝
추정: 본 취약점은 정수 오버플로우 또는 범위 검증 미흡(Integer Overflow/Range Validation Error) 유형에 해당합니다. 단독으로는 DoS를 유발하지만, 추정: 다른 권한 상승(LPE) 취약점과 체이닝될 경우 시스템의 안정성을 해치며 특정 커널 상태를 강제하여 공격자의 후속 공격을 용이하게 하는 환경을 조성할 수 있습니다.
🔎 탐지
(1) 로그 지표: /var/log/syslog, dmesg 또는 journalctl -k에서 __kvmalloc_node_noprof()와 관련된 WARN_ON_ONCE 메시지 및 nft_set_pipapo 관련 메모리 할당 오류 패턴 확인.
(2) 탐지 규칙:
- SIEM 쿼리 (의사코드):
SELECT timestamp, hostname, message FROM kernel_logs WHERE message LIKE '%__kvmalloc_node_noprof%' AND message LIKE '%nft_set_pipapo%' - 로그 패턴 정규식:
/(?=.*__kvmalloc_node_noprof)(?=.*nft_set_pipapo)/ - 임계값 기반 탐지: 단일 호스트에서 짧은 시간 내에 다수의 커널 경고(Kernel Warning)가 반복 발생하며 네트워크 설정 변경 시도가 동반되는 경우.
(3) 오탐 튜닝: 정상적인 대규모 네트워크 환경에서 매우 큰 nftables 셋을 구성하는 운영 패턴이 있는지 확인하십시오. 일반적인 환경에서는INT_MAX수준의 버킷 사이즈를 설정하지 않으므로, 해당 로그 발생 시 높은 확률로 이상 징후로 판단할 수 있습니다.
🛡️ 완화 방안
본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, EPSS 실측값(0.00193)과 KEV 미등재 상태를 근거로 실제 악용 가능성은 낮으나 CVSS 7.8의 잠재적 위험도를 고려하여 'scheduled' 우선순위로 결정되었습니다.
- 즉시(긴급 차단):
nftables설정 변경 권한을 제한하십시오. 일반 사용자가nft명령어를 실행하지 못하도록 sudo 권한을 점검하고, 불필요한 경우nftables모듈 로드를 제한합니다.- 난이도: 낮음 / 영향: 낮음(관리자 외 사용 불가) / 검증:
sudo -l확인 / 우선순위: 최우선
- 난이도: 낮음 / 영향: 낮음(관리자 외 사용 불가) / 검증:
- 단기(완화): 커널 파라미터 및 리소스 제한을 통해 비정상적인 메모리 할당 요청이 시스템 전체로 확산되는 것을 방지하고, 상기 탐지 규칙을 SIEM에 적용하여 실시간 모니터링을 강화합니다.
- 난이도: 중간 / 영향: 매우 낮음 / 검증: 로그 수집 확인 / 우선순위: 높음
- 근본(해결): 영향을 받는 커널 버전(5.6 - 6.12.35, 6.13 - 6.15.4)에서 패치가 적용된 최신 안정 버전으로 업데이트하십시오.
nft_set_pipapo내 버킷 사이즈가INT_MAX로 clamp 되도록 수정된 커널을 적용해야 합니다.- 난이도: 중간 / 영향: 높음(재부팅 필요) / 검증:
uname -r버전 확인 / 우선순위: 근본 해결
- 난이도: 중간 / 영향: 높음(재부팅 필요) / 검증:
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00193 · exploit=hard · in_scope=None