[공격] 분석 — CVE-2025-38162
Integer overflow in
nft_set_pipapolookup table allocation can lead to kernel memory corruption or DoS, requiring updates to Linux kernel versions.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00142 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: netfilter 내 nft_set_pipapo 모듈에서 룩업 테이블 크기를 계산할 때, desc->field_len[], NFT_PIPAPO_GROUPS_PER_BYTE, NFT_PIPAPO_BUCKETS 등의 곱셈 과정에서 정수 오버플로우(Integer Overflow)가 발생하여 실제 필요한 메모리보다 적은 양이 할당될 때 트리거됨.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 확인 및
nftables활성화 여부 및pipapo모듈 로드 여부 확인. - 초기 접근: 로컬 사용자 권한 획득 (AV:L, PR:L 조건).
- 실행·권한 획득: 특수하게 조작된
nft_set설정을 통해 오버플로우를 유도하는 파라미터를 전달 $\rightarrow$ 부족한 메모리 할당 $\rightarrow$ 이후 데이터 쓰기 과정에서 Heap Out-of-Bounds(OOB) Write 발생 $\rightarrow$ 커널 패닉(DoS) 또는 커널 객체 덮어쓰기를 통한 권한 상승 시도. - 지속 및 영향: 커널 공간 내 임의 코드 실행 성공 시 루트 권한 획득 및 영속성 확보.
(3) 공격 표면: nftables 설정 인터페이스 (Netlink socket), 특히 nft_set 생성 및 수정 관련 API/함수.
(4) CVSS 벡터 분석:
- AV:L / PR:L: 네트워크를 통한 원격 공격은 불가능하며, 로컬 계정 권한이 반드시 필요함.
- AC:L: 조건만 맞으면 트리거가 단순함.
- UI:N: 사용자 상호작용 불필요.
악용 가능성: 본 취약점은 Linux kernel의 netfilter 내 nft_set_pipapo 모듈에서 발생하는 Integer Overflow로, 공격 난이도는 Hard 수준입니다. AV:L(Local) 벡터가 명시하듯 외부망에서의 직접 침투는 불가능하며, 공격자는 반드시 시스템에 로그인하여 커널 인터페이스에 접근할 수 있는 로컬 권한(PR:L)을 이미 확보한 상태여야 합니다. 공격 표면은 nftables 설정과 관련된 Netlink 소켓 엔드포인트이며, 특히 pipapo 관련 셋(set) 생성 시 전달되는 필드 길이 및 버킷 크기 파라미터가 트리거 지점이 됩니다. EPSS 수치가 0.00142로 매우 낮고 KEV에 등재되지 않은 점은 현재 이 취약점을 이용한 실제 공격 사례가 드물며, 단순 Crash를 넘어 권한 상승(LPE)으로 연결하기 위한 정교한 메모리 레이아웃 조작이 필요함을 시사합니다. 결과적으로 이론적 심각도와 별개로 실전 악용 가능성은 낮으나, 로컬 사용자 권한을 가진 공격자가 커널 메모리 오염을 통해 Root 권한을 획득하려는 체이닝 경로의 일환으로 활용될 위험이 존재합니다.
💥 영향 분석
(1) 기술적 위험: 룩업 테이블 할당 크기 계산 오류로 인한 메모리 오염. 최악의 경우 커널 Crash로 인한 서비스 중단(DoS) 또는 커널 메모리 조작을 통한 권한 상승(LPE).
(2) 비즈니스 영향: 서버 가용성 상실. 다중 소스에서 일관성이 확인된 데이터에 근거할 때, 영향 범위가 Linux kernel 5.6부터 6.15.3까지 광범위하여 많은 리눅스 기반 인프라가 잠재적 위험군에 속함.
🔗 관련 취약점·체이닝
- 추정: 정수 오버플로우 $\rightarrow$ Heap OOB Write $\rightarrow$ 커널 권한 상승(LPE) 체인으로 이어질 가능성이 높음.
- 추정: 단독으로는 DoS에 그칠 수 있으나, 다른 커널 메모리 레이아웃 유출 취약점(Information Leak)과 체이닝될 경우 KASLR을 우회하여 정밀한 권한 상승 공격으로 발전 가능함.
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/kern.log 내의 nft_set_pipapo 관련 메모리 할당 오류, slab-out-of-bounds 경고, 혹은 갑작스러운 커널 패닉(Kernel Panic) 로그.
(2) 탐지 규칙 예시:
- 로직:
nftables설정 변경 명령 중 비정상적으로 큰set크기나 필드 길이를 정의하는 패턴 감시. - SIEM 쿼리 형태:
process_name == "nft" AND (command_line CONTAINS "add set" OR command_line CONTAINS "update set") AND length(command_line) > [임계값]
(3) 오탐 시나리오 및 튜닝: 복잡한 방화벽 룰셋을 사용하는 환경에서는 정상적인 대형 set 생성 작업이 발생할 수 있음. 화이트리스트 기반의 관리자 IP/사용자 계정 필터링을 통해 튜닝 필요.
🛡️ 완화 방안
- 즉시(긴급 차단): 불필요한 경우
nft_set_pipapo모듈 로드 제한 또는 비특권 사용자의netlink소켓 접근 제어 (난이도: 하 / 영향: 낮음 / 검증:lsmod확인). - 단기(완화): 커널 파라미터 및 보안 모듈(SELinux, AppArmor)을 통해
nftables설정 변경 권한을 최소화하여 공격 표면 축소 (난이도: 중 / 영향: 보통 / 검증: 정책 적용 테스트). - 근본(해결): Linux kernel 6.12.35+ 또는 6.15.4+ 버전으로 업데이트.
check_mul_overflow()및check_add_overflow()가 도입된 패치 버전 적용 필수 (난이도: 중 / 영향: 재부팅 필요 / 검증:uname -r확인).
※ 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성을 확인했으며, EPSS 0.00142(백분위 0.03927)라는 실측값을 근거로 실제 악용 가능성이 매우 낮고 PoC가 미상인 'hard' 등급으로 분류되었습니다. 따라서 CVSS 5.5 및 non-KEV 상태를 종합하여 우선순위를 'monitor'로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00142 · exploit=hard · in_scope=None