[공격] 분석 — CVE-2025-23143
A null-pointer dereference in the Linux kernel occurs when a CIFS module is unloaded while its underlying TCP socket remains in FIN_WAIT_1, leading to a system crash (DoS); immediate patching or restricting module unloading is recommended.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00187 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: CIFS 마운트 상태에서 네트워크 패킷 필터링(iptables)을 통해 incoming FIN 패킷을 차단하여 TCP 소켓을 FIN_WAIT_1 상태로 고립시킨 후, CIFS 모듈을 강제로 언로드(rmmod)할 때 발생.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 및 CIFS 사용 여부 확인.
- 초기 접근: 로컬 사용자 권한 획득 (AV:L, PR:L).
- 실행/영향:
- CIFS 마운트 $\rightarrow$ 2.
iptables -A INPUT -p tcp --dport 445 -j DROP등으로 FIN 패킷 차단 $\rightarrow$ 3. Unmount $\rightarrow$ 4.rmmod cifs.
- CIFS 마운트 $\rightarrow$ 2.
- 관측 지표: 커널 로그(
dmesg)에LOCKDEP경고 및null-ptr-deref로 인한 Kernel Panic 발생.
(3) 공격 표면: Linux Kernel Network Stack (CIFS module, TCP socket lifecycle management).
(4) CVSS 벡터 연결: - AV:L / PR:L: 로컬 계정 권한이 있어야
rmmod및iptables조작 가능. - AC:L: 특정 네트워크 상태(
FIN_WAIT_1)만 유도하면 되므로 복잡도가 낮음. - UI:N: 사용자 상호작용 불필요.
악용 가능성: 본 취약점은 공격 난이도가 매우 높은 hard 등급으로, 공격자가 이미 시스템에 접근하여 로컬 권한을 가진 상태(AV:L, PR:L)여야 트리거가 가능합니다. 공격 표면은 Linux 커널의 CIFS 모듈과 네트워크 소켓 관리 메커니즘이며, 구체적으로는 sock_lock_init_class_and_name() 함수와 rmmod를 통한 모듈 언로드 과정에서의 Race Condition이 핵심입니다. 트리거를 위해서는 CIFS 마운트 상태에서 특정 TCP FIN 패킷을 드롭시키는 iptables 규칙 설정과 같은 정밀한 네트워크 제어 조건이 선행되어야 하므로, 일반적인 환경에서의 우발적 발생 가능성은 매우 낮습니다. EPSS 수치가 0.00187로 매우 낮고 KEV에 등재되지 않은 점은 이 취약점이 이론적인 Null-ptr-deref 위험성에도 불구하고 실전에서 무기화되어 공격에 활용된 사례가 거의 없음을 방증합니다. 결과적으로 복잡한 전제 조건과 로컬 권한 요구 사항으로 인해 외부에서의 직접적인 침투 경로로 활용될 가능성은 희박하며, 특정 환경을 타겟팅한 정밀한 DoS 유발 수준의 악용 가능성이 주를 이룹니다.
💥 영향 분석
(1) 기술적 위험: Null-pointer dereference로 인한 커널 패닉 및 시스템 크래시 $\rightarrow$ 서비스 거부(DoS).
(2) 비즈니스 영향: 서버 가용성 즉시 상실. 특히 CIFS를 통해 스토리지 공유를 사용하는 파일 서버나 엔터프라이즈 환경에서 예기치 못한 다운타임 발생 가능.
🔗 관련 취약점·체이닝
- 체이닝 경로: 추정: [로컬 권한 획득] $\rightarrow$ [본 취약점을 이용한 DoS] 또는 [Race Condition 유도 $\rightarrow$ Use-After-Free(UAF) $\rightarrow$ 권한 상승].
- 유형 분석: 본 결함은 모듈의 참조 카운트(
refcnt)와 실제 리소스(TCP socket)의 생명주기 불일치로 인해 발생함. 추정: 단순 DoS를 넘어, 언로드된 메모리 영역에 특정 값을 배치할 수 있다면 제어 흐름 탈취로 이어질 가능성이 있는 전형적인 Lifecycle Management 결함 패턴임.
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/syslog 내 sock_lock_init_class_and_name() 함수 호출 시점의 Null pointer dereference 스택 트레이스 확인.
(2) 탐지 규칙:
- Rule 1 (행위 기반):
process.name == "rmmod" && process.args contains "cifs"와 동시에netstat또는ss결과에FIN_WAIT_1상태의 445 포트 세션이 존재하는 경우. - Rule 2 (네트워크 필터링):
iptables -L명령 결과에서 CIFS(TCP 445) 관련 DROP 규칙이 추가된 직후 모듈 언로드 시도 감지.
(3) 오탐 시나리오: 네트워크 장애로 인해 자연스럽게 소켓이FIN_WAIT_1에 머문 상태에서 관리자가 정상적으로 모듈을 업데이트하기 위해 제거하는 경우. $\rightarrow$ 튜닝:iptables규칙 변경 이력과rmmod실행 간의 시간 간격을 분석하여 의도적 유도 여부 판단.
🛡️ 완화 방안
- 즉시(긴급 차단):
cifs모듈에 대해install /bin/true설정을 통해 신규 로드를 막거나, 일반 사용자의rmmod권한을 엄격히 제한 (난이도: 하 / 영향: CIFS 기능 불가). - 단기(완화): 커널 파라미터 및 방화벽 설정을 점검하여 비정상적인 TCP 상태 유지 시간을 단축시키고, 불필요한 모듈 언로드 작업을 금지 (난이도: 중 / 영향: 운영 프로세스 변경 필요).
- 근본(해결): 영향받는 커널 버전(2.6.20 ~ 6.14.3)에서 해당 패치가 적용된 최신 안정 버전으로 업데이트. 다중 소스 교차검증 결과 일관성이 확인되었으며, EPSS 0.00187 및 실측 등급 'hard'로 인해 즉각적인 대규모 악용 가능성은 낮으나(우선순위: monitor), 커널 레벨의 불안정성을 제거하기 위해 패치 권장 (난이도: 상 / 영향: 재부팅 필요).
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00187 · exploit=hard · in_scope=None