[단독공격] 분석 — CVE-2024-47736
A local attacker can trigger a kernel deadlock and denial‑of‑service by mounting a crafted erofs image with overlapping pclusters on Linux 5.13–6.11.2 kernels; immediate mitigation is to apply the upstream patch or upgrade the kernel.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00182 · 악용난이도 hard
🔍 공격 기법
- 공격 표면:
mount시스템 콜 또는loop디바이스를 통해 사용자 공간에서 제공되는 erofs 이미지 파일을 커널에 전달하는 과정.- 노출 엔드포인트 :
fs/erofs/내부 함수z_erofs_fill_bio_vec()와 folio lock 관리 로직.
- 노출 엔드포인트 :
- 트리거 조건:
- 시스템이 Linux 5.13 ~ 6.11.2 커널을 사용 중이며 erofs 파일시스템 모듈(
erofs)이 로드돼 있어야 함. - 공격자는 로컬 사용자 권한(Low privileged, PR:L)으로
mount -t erofs <malicious.img> /mnt혹은losetup /dev/loopX <malicious.img>를 수행할 수 있어야 한다.
- 시스템이 Linux 5.13 ~ 6.11.2 커널을 사용 중이며 erofs 파일시스템 모듈(
- 실행 흐름:
- 정찰 –
uname -r,/proc/filesystems로 커널 버전 및 erofs 지원 여부 확인. (다중 소스에서 일관성이 확인됐다 [교차검증]) - 초기 접근 – 제한된 사용자 계정이라도 이미지 파일을 생성·배포하고
mount권한이 있는 경우 이용 가능. - 실행/권한 획득 – 이미지는 겹치는 큰 pcluster(예: extent 0 ↔︎ 1) 로 구성되어
z_erofs_fill_bio_vec()가 BIO 를 비정렬 순서로 제출하게 만든다. 이때 캐시된 folio 의 lock이 해제되지 않아 커널 내부에서 deadlock 발생, 해당 태스크가 영원히 대기한다. - 지속 – 시스템 전체에 영향을 미치면 서비스 재부팅 필요; 지속 메커니즘은 별도 존재하지 않음.
- 영향 –
Availability가High(CVSS A:H)인 DoS를 초래한다.
- 정찰 –
- CVSS 벡터와 실제 조건 매핑:
- AV:L → 로컬 파일 마운트만 필요, 원격 네트워크 접근 불필요.
- AC:L → 복잡도 낮음, 특별한 순서나 우회 없이 이미지 하나만 있으면 된다.
- PR:L → 일반 사용자 권한으로 충분히 실행 가능.
- UI:N → 사용자의 추가 입력 없이 자동으로 deadlock 발생.
악용 가능성: 이 취약점은 AV:L·AC:L·PR:L·UI:N 로 평가되었으므로 공격자는 로컬 시스템에 직접 접근하고, 비교적 간단한 이미지 파일을 준비하면 권한 제한 수준(일반 사용자)에서도 시도할 수 있습니다. 그러나 실제로 악용하려면 EROFS 파일시스템이 마운트 가능한 환경이어야 하며, 겹치는 pcluster 구조를 가진 특수 제작된 이미지를 만들어 커널에 로드해야 합니다. 이러한 이미지는 정상적인 파일시스템 툴로는 생성되지 않으며, 겹침을 재현하기 위해서는 fuzzing·binary‑level 조작 능력이 필요하므로 초기 정찰 단계가 난이도 높은 편입니다. 공격 표면은 mount 호출 및 이미지 파싱 로직(특히 extent → physical offset 매핑 함수)이며, 해당 코드에 도달하면 캐시된 folio 잠금 대기 상태에서 데드락이 발생해 시스템 전체가 멈출 수 있습니다. EPSS = 0.00182 라는 매우 낮은 실측값과 KEV 미등재는 현재까지 이 취약점이 실제 공격으로 활용된 사례가 거의 없으며, 탐지·대응 체계가 충분히 마련되지 않은 경우에도 위협이 제한적임을 의미합니다. 따라서 “hard” 등급은 특수 이미지 제작·마운트 권한 확보라는 전제조건이 충족되어야만 공격이 가능하다는 점에서 부여된 것입니다.
💥 영향 분석
- 커널 태스크가 영구 대기 상태에 빠져 시스템 전반적인 I/O 처리 흐름이 멈추며, 서비스·데몬이 응답하지 않게 된다(DoS).
- 데이터 손실이나 권한 상승은 없으며, 재부팅 후 정상 복구 가능하지만 가용성 차원에서 심각하다.
🔗 관련 취약점·체이닝
- 유형: 파일시스템 내부 동기화 오류 →
deadlock→ 서비스 거부. (CWE‑?? 미분류) - 가능한 체인:
- 추정: 동일 커널 버전에서 발견된 다른 로컬 권한 상승 취약점(CVE‑XXXX‑YYYY)과 결합하면, DoS 후 재시작 시 부팅 과정에서 악성 모듈을 로드해 권한 상승이 가능할 수 있다. (구체적인 CVE 번호는 확인되지 않음)
- 일반 패턴:
DoS → 리소스 고갈 → 비정상 상태에서의 권한 상승형태가 흔히 보고된다.
🔎 탐지
- 커널 로그(
dmesg,/var/log/kern.log)에 “deadlock”, “folio lock wait” 혹은erofs관련 스택 트레이스가 반복적으로 기록되는 경우. - 시스템 모니터링 툴(e.g.,
systemd-analyze blame,perf top)에서 특정 PID가D(uninterruptible sleep) 상태로 장시간 머무는 현상 감지. - BPF/tracepoint(
erofs_folio_lock,erofs_fill_bio_vec) 를 활용해 비정상적인 BIO 제출 순서와 lock 대기 시간을 로깅.
🛡️ 완화 방안
- 즉시 조치: 해당 커널 버전을 사용 중이라면 erofs 이미지 마운트를 차단하거나, 신뢰할 수 없는 파일에 대해
mount권한을 제한한다. - 근본 해결: upstream에서 제공하는 패치를 적용해 커널을 5.13‑latest, 6.10.14 이상 또는 6.11.3 이상으로 업그레이드한다(취약 범위 5.13 ~ 6.11.2).
- 추가 방어: SELinux/AppArmor 정책으로
erofs파일시스템 마운트를 제한하고, 불필요한 loop 디바이스 사용을 금지한다.
※ EPSS = 0.00182 (백분위 0.07956) 로 실제 악용 가능성은 낮지만 hard 등급(Exploit difficulty)으로 평가되어 모니터링이 우선 순위가 된다([실측 악용예측]).
※ 위 우선순위는 CVSS 5.5·non‑KEV·EPSS 0.00182·exploit = hard 를 기반으로 monitor 로 결정된 논리([우선순위 결정])에 따라 설정하였다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00182 · exploit=hard · in_scope=None