[방어] 분석 — CVE-2025-21648
CVE-2025-21648 allows a low‑privileged local user to trigger an oversized conntrack hashtable resize that hits a WARN_ON in __kvmalloc_node_noprof(), leading to kernel denial‑of‑service; immediate mitigation is to clamp or disable conntrack until the patched kernel is deployed.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00215 · 악용난이도 hard
🔍 공격 기법
저특권 로컬 사용자가 init netns에서 netfilter conntrack 해시테이블을 재조정하도록 유도하면, 크기가 INT_MAX를 초과하는 경우 __kvmalloc_node_noprof()에서 WARN_ON_ONCE이 발생한다. 이 경고는 커널 패닉(또는 서비스 중단)으로 이어질 수 있다(A:H).
악용 가능성: 이 취약점은 AV:L (로컬 접근)만으로도 공격을 시작할 수 있으나, PR:L (저권한 사용자라도 루트 권한을 얻어야 함)이 전제되므로 실제 악용에는 시스템 내부에서 권한 상승이 선행되어야 합니다. AC:L (낮은 복잡도)는 해커가 적절히 조작된 대량의 네트워크 연결을 생성하거나 conntrack 엔트리를 강제로 늘려 hashtable 리사이즈를 트리거하는 것이 비교적 간단함을 의미합니다. UI:N (사용자 개입 없음)은 공격이 자동으로 진행될 수 있음을 나타내며, 별도의 사회공학적 단계가 필요 없습니다. 공격 표면은 init_netns 네임스페이스에서만 해시 테이블 크기 조정이 가능하므로, 해당 네임스페이스에 접근할 수 있는 로컬 프로세스 또는 컨테이너가 주요 진입점이며, netfilter · conntrack 관련 sysfs·proc 인터페이스나
💥 영향 분석
- 가용성: WARN_ON 트리거 시 커널이 panic하거나 전체 시스템이 멈출 위험이 존재한다.
- 범위: Linux kernel 4.7.1‑6.12.10 전 버전에 적용되며, 네트워크 네임스페이스를 사용하는 모든 호스트가 영향을 받는다.
- 기밀성·무결성은 직접적인 피해가 없으며, 공격 성공 시 주된 위험은 서비스 중단이다.
🔗 관련 취약점·체이닝
- 동일한 커널 메모리 할당 경고를 이용하는 다른 로컬 DoS(CVE‑2024‑xxxx 등)와 연계될 가능성이 있다.
- conntrack 크기 조정 후 권한 상승을 시도하는 공격(예: CVE‑2023‑xxxxx)의 전 단계로 활용될 수 있다.
🔎 탐지
로그 지표
dmesg·/var/log/kern.log에 “WARN_ON_ONCE”와 “__kvmalloc_node_noprof” 문자열이 함께 기록되는 경우.syslog에 “conntrack hashtable resize” 혹은 “netfilter: conntrack” 과 연관된 WARN 메시지.
SIEM 탐지 규칙 예시 (필드/조건 기반)
-
규칙 1 – 커널 경고 감지
text1source = kernel2message MATCHES /WARN_ON_ONCE.*__kvmalloc_node_noprof/오탐: 일반 메모리 부족 경고에도 동일 문자열이 포함될 수 있다. → “netfilter” 키워드 추가로 튜닝.
-
규칙 2 – conntrack 재조정 시도
text1source = syslog2message MATCHES /netfilter:.*conntrack.*hashtable resize/오탐: 정상적인 커널 업그레이드 로그. → 발생 빈도와 시간대(비정상적 야간)로 필터링.
-
규칙 3 – 비정상적인 netlink 호출 (auditd)
text1-a exit,always -F arch=b64 -S socket -F a0=AF_NETLINK -F a1=NETLINK_NFLOG -k nf_conntrack_resize오탐: 정상 애플리케이션의 netlink 사용. → PID/UID가 root 아닌 경우만 경고하도록 제한.
오탐 튜닝
- 위 규칙에 “init_netns” 컨텍스트(예:
pid==1또는nsid==0)를 추가하면 정상적인 네임스페이스 재시작을 제외할 수 있다. - 경고 발생 횟수가 일정 시간 내 2회 초과 시 알림으로 전환한다.
🛡️ 완화 방안
즉시(긴급 차단) – nf_conntrack 모듈 비활성화
1modprobe -r nf_conntrack # 루트 권한 필요- 난이도: 낮음 (루트 접근 가능 시 1분 이내).
- 운영 영향: NAT·방화벽·stateful tracking 기능이 즉시 중단되므로, 해당 서비스가 의존하는 경우 트래픽 차단 위험.
- 검증:
lsmod | grep nf_conntrack로 모듈 언로드 확인 및iptables -L -v로 상태 추적 규칙 비활성화 여부 점검.
단기(완화) – conntrack 최대 엔트리 수 제한
1sysctl -w net.netfilter.nf_conntrack_max=1048576 # 1 MiB 이하로 강제- 난이도: 중간 (시스템 전반에 적용하려면
/etc/sysctl.conf수정 필요). - 운영 영향: 연결 추적 수가 제한되어 대규모 NAT/클라우드 환경에서 세션 부족 현상이 발생할 수 있음.
- 검증:
sysctl net.netfilter.nf_conntrack_max출력 확인 및conntrack -S로 현재 사용량 모니터링.
근본(해결) – 패치 적용·커널 업그레이드
- 해당 취약점은 “netfilter: conntrack: clamp maximum hashtable size to INT_MAX” 패치를 포함한 커널 4.7.1‑6.12.10 이후 버전에서 해결됨.
- 난이도: 높음 (재부팅 필요, 테스트 환경 검증 필수).
- 운영 영향: 재부팅에 따른 서비스 중단; 일부 배포판에서는 롤링 업데이트가 지원되지 않을 수 있음.
- 검증:
uname -r로 커널 버전 확인 후/boot/config-$(uname -r)에CONFIG_NF_CONNTRACK=y가 포함된 것을 확인하고,dmesg | grep conntrack로 WARN 메시지가 사라졌는지 검증.
패치 이후 잔여 리스크
- 패치를 적용하더라도 커널 경고 로그가 남아 있을 경우(다른 메모리 할당 이슈) 추가적인 모니터링이 필요하다.
- 초기 네임스페이스에서의 재시작/재로드 시점에 일시적 부하가 발생할 수 있으므로, 평상시 트래픽 저조 시간대에 적용하는 것이 바람직하다.
인시던트 대응 플레이북
- 경고 로그 감지 → SIEM 알림 확인.
- 해당 호스트의
ps -ef로 현재 실행 중인 비특권 프로세스 식별. conntrack -L로 현재 테이블 상태 점검, 급격한 엔트리 증가 여부 파악.- 즉시 차단이 필요하면
modprobe -r nf_conntrack수행 후 서비스 영향 평가. - 단기 완화 적용 → sysctl 값 조정 및 재확인.
- 패치가 가능한 경우 최신 커널로 업그레이드하고 재부팅, 이후 로그에 WARN_ON 발생 여부 최종 검증.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00215 · exploit=hard · in_scope=None