[공격] 분석 — CVE-2025-21853
A deadlock vulnerability in the Linux kernel's BPF map mmap operation allows local users to cause a system denial-of-service, requiring immediate monitoring and eventual kernel patching.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00221 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: BPF map의 내용을 writable 권한으로 메모리 매핑(mmap)하는 과정에서 freeze_mutex를 과도하게 오래 유지하여 발생하는 Race Condition 및 Deadlock을 유발함.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 확인 (5.5 ~ 6.13.5 범위 내).
- 초기 접근: 로컬 사용자 권한 확보 (
PR:L). BPF map 생성 및 조작 권한 필요. - 실행/영향:
mmap오퍼레이션을 반복적으로 호출하여freeze_mutex획득 경쟁을 유도, 커널 스레드를 교착 상태(Deadlock)에 빠뜨려 시스템 전체 또는 특정 프로세스 응답 불가 상태 유발.
(3) 공격 표면: Linux Kernel BPF subsystem 내의mmap관련 시스템 콜 및 내부 함수(freeze_mutex처리 로직).
(4) CVSS 벡터 분석:AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - 로컬 접근(
AV:L)과 낮은 권한(PR:L)이 전제되나, 공격 복잡도가 낮아(AC:L) 조건을 충족하는 사용자가 있다면 즉시 트리거 가능. 결과는 가용성 파괴(A:H)에 집중됨.
악용 가능성: 본 취약점은 공격 난이도가 매우 높은 hard 등급으로, 로컬 권한을 가진 사용자가 Linux 커널의 BPF(Berkeley Packet Filter) 맵 메모리 매핑 과정에서 발생하는 Race Condition을 정밀하게 유도해야 합니다. CVSS 벡터(AV:L/AC:L/PR:L/UI:N)에 따라 네트워크를 통한 원격 공격은 불가능하며, 반드시 시스템 내부에 접근 가능한 계정(Low Privilege)이 확보된 상태에서 mmap 시스템 콜과 BPF 맵의 freeze_mutex 잠금 메커니즘을 트리거해야 합니다. 하지만 EPSS 수치가 0.00221로 매우 낮고 KEV에 등재되지 않았다는 점은, 해당 결함이 실제 공격 시나리오로 무기화되어 유포되기보다는 syzbot과 같은 퍼징 도구에 의해 발견된 이론적 가능성에 가깝음을 시사합니다. 주요 공격 표면은 커널 내부의 BPF 맵 관리 함수와 mmap 인터페이스이며, 특히 freeze_mutex를 보유한 상태에서 VMA(Virtual Memory Area) 조작이 일어나는 지점이 핵심 타겟입니다. 결과적으로 이 취약점은 단독으로 권한 상승을 일으키기보다 커널 데드락(Deadlock) 유도를 통한 서비스 거부(DoS) 가능성이 높으며, 이를 실행하기 위해서는 정교한 타이밍 제어가 필요하므로 실전 악용 가능성은 낮습니다.
💥 영향 분석
(1) 기술적 위험: 커널 레벨의 Deadlock 발생으로 인한 시스템 프리징(System Freeze) 및 서비스 거부(DoS). CPU 점유율 급증 또는 특정 프로세스의 영구 대기 상태 발생.
(2) 비즈니스 영향: 서버 가용성 상실로 인한 서비스 중단. 특히 BPF를 활용한 모니터링/네트워킹 도구가 구동 중인 환경에서 시스템 전체 크래시 시 복구 전까지 서비스 불능 상태 지속.
🔗 관련 취약점·체이닝
- 추정: 단독으로는 DoS에 그치지만, 커널의 다른 Race Condition이나 Memory Corruption 취약점과 체이닝될 경우, 특정 타이밍을 정밀하게 제어하기 위한 '시스템 지연 유도' 수단으로 활용될 가능성이 있음.
- 일반적 패턴:
Local Privilege Escalation (LPE)과정에서 권한 상승 페이로드가 실행되는 동안 커널의 다른 스레드를 묶어두기 위한 보조 수단(Primitive)으로 사용되는 패턴이 존재함.
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/kern.log 내의 "soft lockup", "hard lockup" 메시지 및 BPF 관련 panic 로그.
(2) 탐지 규칙:
- 로직 1:
sys_mmap호출 빈도가 특정 사용자 계정에서 비정상적으로 급증하는 패턴 감시. - 로직 2 (eBPF 기반):
bpf_map_mmap함수 진입 후freeze_mutex획득 상태에서 임계 시간(예: 5초) 이상 체류하는 스레드 추적. - 로직 3 (SIEM):
auditd로그 중 BPF map 생성/수정 및 mmap 관련 시스템 콜 호출 시퀀스 모니터링.
(3) 오탐 시나리오: 대규모 BPF 기반 관측 도구(Observability tools)가 초기화될 때 다량의 mmap이 발생할 수 있음. 화이트리스트 기반으로 신뢰된 바이너리의 호출은 제외하는 튜닝 필요.
🛡️ 완화 방안
- 즉시(긴급 차단):
unprivileged_bpf_disabledsysctl 설정을 통해 비특권 사용자의 BPF 사용을 제한. (sysctl -w kernel.unprivileged_bpf_disabled=1). [난이도: 저 / 영향: BPF 기반 앱 동작 불가 / 검증:sysctl값 확인] - 단기(완화): BPF map mmap 권한을 필요 최소한의 사용자/그룹으로 제한하는 ACL 적용. [난이도: 중 / 영향: 운영 프로세스 수정 필요 / 검증: 일반 계정 mmap 테스트]
- 근본(해결): 취약점이 해결된 커널 버전으로 업데이트 (6.6.81+, 6.12.18+, 6.13.6+ 등). [난이도: 고 / 영향: 리부팅 필요 및 가용성 일시 중단 / 검증:
uname -r확인]
[분석 근거]
본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS 수치(0.00221)와 백분위(0.12824)를 기반으로 실제 악용 가능성이 매우 낮음(hard)을 확인했습니다. 이에 따라 CVSS 5.5의 이론적 위험도보다 실무적 우선순위를 monitor로 결정하여 대응 리소스를 효율화하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00221 · exploit=hard · in_scope=None