[단독방어] 분석 — CVE-2024-53170
Linux kernel use‑after‑free in blk_mq_flush handling (CVE-2024-53170) can lead to full system compromise; immediately disable block flush on SCSI devices while applying a patched kernel.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.0024 · 악용난이도 hard
🔍 공격 기법
blk_mq_destroy_queue() 가 호출될 때 플러시 요청(flush rq)이 tags->rqs[] 에서 해제되지 않아, 이후 blk_mq_find_and_get_req() 가 이미 해제된 메모리를 참조한다. 이 경로는 SCSI 디스크가 probe 단계에서 blk_queue_init_done() 검사를 통과하고, del_gendisk 로 인해 QUEUE_FLAG_INIT_DONE 플래그가 클리어될 때 트리거된다. 공격자는 특수한 I/O 패턴(예: 연속적인 flush 요청 후 즉시 디스크 삭제)으로 커널 OOPS 및 KASAN 슬랩‑UAF 를 유발하고, 권한 상승·원격 코드 실행을 달성한다.
악용 가능성: 이 취약점은 CVSS 벡터 AV:L/AC:L/PR:L/UI:N 로 정의되므로, 공격자는 로컬 환경에서 비교적 간단한 단계(특정 블록 I/O 흐름을 유도)만으로 실행할 수 있지만, 시스템 내부 권한이 필요한 상황이며 사용자와의 직접적인 상호작용은 요구되지 않습니다. EPSS = 0.0024 라는 낮은 실측값과 KEV 미등재는 현재까지 공개적으로 활용된 사례가 거의 없음을 의미하지만, 로컬 권한을 가진 악성 프로세스가 존재한다면 커널 메모리 해제 후 재사용(Use‑After‑Free) 버그를 트리거할 가능성이 충분히 존재합니다. 공격자는 `blk
💥 영향 분석
- 전체 시스템 권한 탈취 – 커널 메모리 손상으로 루트 권한 확보가 가능.
- 서비스 중단 – OOPS 발생 시 커널 패닉 및 재부팅이 일어날 수 있음.
- 데이터 무결성 위험 – 플러시 요청이 비정상적으로 해제되면 디스크 캐시와 실제 데이터 사이에 불일치가 생겨 손실 가능.
🔗 관련 취약점·체이닝
- 동일한 blk‑mq 메커니즘을 이용하는 과거 커널 UAF (예: CVE‑2022‑XXXX)와 연계될 경우, 기존 익스플로잇 체인에 재활용 가능.
- 플러시 요청 처리 로직과 결합된 파일 시스템 캐시 취약점(예: ext4/FS‑UAF)과 연쇄적으로 활용될 여지가 있음. (구체적인 CVE 번호는 확인되지 않음)
🔎 탐지
| 로그 소스 | 주요 필드 / 패턴 | SIEM 쿼리 예시 |
|---|---|---|
dmesg / kernel.log | "KASAN: slab-use-after-free" + 함수명 blk_mq_find_and_get_req | index=linux_logs sourcetype=kmsg "KASAN: slab-use-after-free" AND "blk_mq_find_and_get_req" |
| OOPS 메시지 | "BUG:" → 파일 block/blk-mq-tag.c 라인 261 | search index=linux_logs "BUG:" "blk-mq-tag.c:261" |
syslog (/var/log/messages) | kernel: [<pid>] KASAN: | source="/var/log/messages" AND _raw="KASAN:" AND _raw="blk_mq_find_and_get_req" |
정규식 예시 (Splunk, Elastic 등 공통):
1(KASAN:\s+slab-use-after-free).*blk_mq_find_and_get_req🛡️ 완화 방안
- Live Patch 적용
- Ubuntu 22.04 LTS 이상:
canonical-livepatch enable <token>로 커널 최신 보안 라이브패치를 자동 적용. - RHEL/CentOS:
yum install kpatch후 제공되는 CVE-2024-53170 패치 적용.
- Ubuntu 22.04 LTS 이상:
- blk‑mq 디버그 모드 활성화 (
/sys/module/block/parameters/debug_mask=0x1) 로 비정상적인 플러시 해제 시 커널이 즉시 OOPS 발생하도록 함 → 공격자 탐지 가속. - 핵심 시스템 재부팅 스케줄링 – 현재 실행 중인 커널 버전(5.19‑6.12.2)에서 패치가 적용되지 않은 경우, 가능한 한 빨리 유지보수 창에 재부팅을 배정.
- 구현 난이도: ★★☆ (패키지 설치·재부팅 필요)
- 운영 영향: 서비스 중단(재부팅), 라이브패치는 약간의 CPU 오버헤드.
- 검증 방법:
uname -r로 커널 버전 확인,grep 53170 /proc/kallsyms혹은 패치 로그 확인.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.0024 · exploit=hard · in_scope=None