[방어] 분석 — CVE-2025-38162
CVE-2025-38162 is an integer overflow vulnerability in the Linux kernel's netfilter nft_set_pipapo module that can lead to a Denial of Service (DoS), requiring immediate restriction of unprivileged nftables configuration access.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00142 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: nft_set_pipapo 모듈에서 룩업 테이블 할당 시, field_len, NFT_PIPAPO_GROUPS_PER_BYTE, NFT_PIPAPO_BUCKETS 등의 값을 곱하는 과정에서 정수 오버플로우(Integer Overflow)가 발생하여 실제 필요한 메모리보다 적은 양이 할당될 때 트리거됩니다.
(2) 공격 단계:
- 전제조건: 로컬 시스템에 대한 낮은 권한의 사용자 계정 보유 및
nftables설정 권한 필요. - 실행: 특수하게 조작된
nft_set규칙을 생성하여 커널 내 메모리 할당 크기 계산식을 오버플로우 시킴 $\rightarrow$ 힙 영역에 작은 버퍼 할당 $\rightarrow$ 이후 데이터 쓰기 과정에서 Out-of-bounds Write 발생. - 영향: 커널 패닉(Kernel Panic) 유발로 인한 시스템 중단.
(3) 공격 표면: Linux 커널 내netfilter서브시스템의nft_set_pipapo모듈.
(4) CVSS 벡터 연결:AV:L/PR:L에 따라 원격 공격은 불가능하며, 이미 시스템에 접근한 권한이 낮은(PR:L) 사용자가 로컬(AV:L)에서 실행해야 합니다. 복잡성(AC:L)과 사용자 상호작용(UI:N)이 낮아 조건 충족 시 실행 가능성이 높습니다.
악용 가능성: 본 취약점의 공격 난이도는 Hard로 평가됩니다. CVSS 벡터상 AV:L 및 PR:L 조건으로 인해, 공격자는 이미 시스템에 로컬 계정 권한을 획득한 상태에서 커널 메모리에 접근할 수 있어야 하는 전제조건이 필요합니다. 공격 표면은 Linux 커널의 netfilter 내 nft_set_pipapo 모듈이며, 특히 lookup table 할당 시 발생하는 정수 오버플로우(Integer Overflow)가 핵심 트리거 지점입니다. 하지만 EPSS 수치가 0.00142로 매우 낮고 KEV에 등재되지 않은 점은, 이론적인 심각도와 달리 실제 야생(In-the-wild)에서 악용된 사례가 드물거나 익스플로잇 구현 난이도가 높음을 시사합니다. 결과적으로 공격자가 특수하게 조작된 nftables 룰셋을 통해 커널 메모리 할당 크기를 왜곡시켜야 하므로, 일반적인 외부 침입보다는 권한 상승(Privilege Escalation)을 노린 정교한 로컬 공격 시나리오에서만 악용 가능성이 존재합니다.
💥 영향 분석
(1) 기술적 위험: 메모리 오버플로우로 인한 커널 크래시 및 시스템 가용성 상실(DoS). AV:L 및 PR:L 특성상 단일 취약점만으로는 권한 상승이나 데이터 유출보다는 서비스 중단 가능성이 높습니다.
(2) 비즈니스 영향: 서버 다운타임으로 인한 서비스 중단 및 인프라 가용성 저하. 다수의 컨테이너나 VM이 공유하는 호스트 커널에서 발생할 경우 전체 환경의 가용성에 영향을 줄 수 있습니다.
🔗 관련 취약점·체이닝
- 추정: 정수 오버플로우로 인한 힙 오버플로우(Heap Overflow) 유형입니다. 일반적인 체이닝 패턴상, 단순 DoS에 그치지 않고 정교하게 메모리 레이아웃을 조작할 수 있다면 임의 코드 실행(RCE)이나 권한 상승(LPE)으로 이어질 가능성이 있으나, 본 취약점 단독으로는 가용성 침해(
A:H)가 주된 위험입니다.
🔎 탐지
(1) 로그 지표:
- 커널 로그 (
dmesg,/var/log/kern.log):General protection fault,Kernel panic - not syncing,Unable to handle kernel paging request등의 메시지와 함께nft_set_pipapo관련 함수 스택 트레이스가 남는지 확인.
(2) 탐지 규칙: - 로직 1 (시스템 콜 모니터링):
auditd를 통해 권한이 낮은 사용자가nftables설정을 변경하는 시도를 감시.- 조건:
user != rootANDsyscall == socket(AF_NETLINK) ANDpayload contains "nft_set_pipapo"
- 조건:
- 로직 2 (SIEM 의사코드):
sql1SELECT timestamp, user, event_id FROM kernel_logs2WHERE message LIKE '%nft_set_pipapo%'3AND (message LIKE '%overflow%' OR message LIKE '%panic%')
(3) 오탐 튜닝: 네트워크 관리자가 정당하게 nftables 규칙을 업데이트하는 과정에서 발생하는 로그는 제외하도록 화이트리스트(관리자 계정, 특정 배포 스크립트 IP)를 적용합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): 비특권 사용자의
netfilter설정 권한 제거.- 방법:
sysctl -w kernel.unprivileged_userns_clone=0(추정: 배포판에 따라 상이) 또는nftables관련 바이너리 권한 제한. - 난이도: 낮음 / 운영 영향: 낮음(일반 사용자는 nftables를 수정하지 않음) / 검증: 비특권 계정에서
nft명령 실행 시 Permission Denied 확인 / 우선순위: 최상.
- 방법:
- 단기(완화): 커널 모듈 로드 제한.
- 방법:
modprobe -r nft_set_pipapo(사용하지 않는 경우) 또는/etc/modprobe.d/에 블랙리스트 추가. - 난이도: 보통 / 운영 영향: 중간(해당 기능을 사용하는 방화벽 규칙 작동 중지됨) / 검증:
lsmod | grep nft_set_pipapo결과 없음 확인 / 우선순위: 높음.
- 방법:
- 근본(해결): 커널 업데이트.
- 버전: Linux Kernel 5.6 ~ 6.12.34 $\rightarrow$ 패치 버전으로, 6.13 ~ 6.15.3 $\rightarrow$ 패치 버전으로 업그레이드.
- 난이도: 높음 / 운영 영향: 높음(재부팅 필요) / 검증:
uname -r로 커널 버전 확인 / 우선순위: 필수.
[분석 근거] 본 리포트는 다중 소스 데이터의 일관성이 확인된 교차검증 결과를 바탕으로 작성되었습니다. 실측 EPSS 값은 0.00142(백분위 0.03927)로 매우 낮으며, 이는 이론적 심각도와 별개로 실제 야생에서의 악용 가능성이 현재로서는 희박함을 뜻합니다. 이에 따라 CVSS 5.5 및 AV:L, PR:L 조건을 종합하여 우선순위를 'monitor(모니터링)' 단계로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00142 · exploit=hard · in_scope=None