[단독방어] 분석 — CVE-2025-71075
The aic94xx SCSI driver use‑after‑free bug (CVE-2025-71075) can be mitigated immediately by blacklisting the module, while applying kernel updates that include the tasklet_kill fix.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00126 · 악용난이도 hard
🔍 공격 기법
- 로컬 사용자가 SCSI 디바이스를 hot‑unplug 하거나
rmmod aic94xx로 모듈을 언로드하는 순간, 아직 실행 중인 tasklet이 asd_ha 구조체와 동기화되지 않아 메모리가 해제된다. - 공격자는 이 시점을 정확히 맞춰 커널 주소를 조작하고 임의 코드를 실행할 수 있다(Use‑After‑Free → 권한 상승/원격 코드 실행).
악용 가능성: 1. 이 취약점은 CVSS 벡터가 AV:L/AC:L/PR:L/UI:N이므로, 공격자는 반드시 로컬 시스템에 접근해야 하며(예: 물리적 콘솔 또는 루트 권한을 얻은 계정), 복잡한 사전 준비 없이 낮은 난이도로 실행할 수 있습니다.
-
PR:L은 “low privilege” 를 의미하므로, 완전한 관리자(root) 권한이 없어도 동일 사용자 계정 수준에서 공격이 가능하지만, 커널 모듈 혹은 SCSI 디바이스 드라이버와 직접 상호작용해야 합니다. -
UI:N은 사용자의 개입이 전혀 필요하지 않다는 뜻이며, 즉시 자동으로 트리거될 수 있는 hot‑unplug 또는 module unload 이벤트가 공격의 시작점입니다. -
EPSS 값이 0.00126(0.126 %)이고 KEV에 등재되지 않은 점은 현재 실제 악용 사례가 매우 드물어 이론적 심각도와는 별개로 실전 위협이 낮다는 근거가 됩니다.
-
그러나
use‑after‑free라는 메모리 관리 오류와tasklet_kill()동기화 부재 때문에, 공격자는 타이밍을 정확히 맞추어 asd_pci_remove() 가 실행되는 순간에 아직 살아있는 tasklet이 접근하도록 유도해야 하므로, 성공적인 익스플로잇에는 정교한 레이스 컨디션 조작 능력이 요구됩니다. -
따라서 공격 표면은 SCSI aic94xx 드라이버의 제거 경로(sysfs remove, hot‑plug 이벤트)와 해당 디바이스가 노출되는 커널 인터페이스이며, 이 경로에 접근할 수 있는 로컬 사용자라
💥 영향 분석
- 성공 시 커널 레벨에서 임의 코드가 실행되므로 시스템 전체 기밀성(C), 무결성(I), 가용성(A) 모두 심각하게 손상된다.
- 로컬 공격자는 루트 권한을 획득하거나, 악성 프로세스를 삽입해 지속성을 확보한다.
🔗 관련 취약점·체이닝
- 동일 계열 SCSI 드라이버(
aic94xx,mptspi)에서 보고된 Use‑After‑Free 패턴과 유사한 메모리 손상 버그와 연계될 수 있다. - 커널 주소 공간 레이아웃 정보를 얻는 별도 로컬 정보 누출(예:
/proc/kallsyms읽기)과 결합하면 익스플로잇 성공 확률이 높아진다.
🔎 탐지
로그 지표
dmesg·/var/log/kern.log에"BUG: KASAN: use-after-free"혹은"asdh_ha"와"tasklet"문자열이 동시에 나타나는 항목.auditd로그에서type=MODULE_UNLOAD이벤트와 그 직후 발생하는 커널 OOPS 메시지(type=KERNEL)가 5초 이내에 매칭될 경우.
SIEM 탐지 규칙 예시 (예: Splunk, Elastic)
- Rule 1:
index=kernel sourcetype="linux:kmsg" ("aic94xx" OR "asd_ha") AND ("use after free" OR "BUG:" )→ 경보 “Potential CVE-2025-71075 use‑after‑free”. - Rule 2:
auditd | where event_type=="MODULE_UNLOAD" and module_name=="aic94xx"joinkernel_logs | where message like "%asd_ha%" and _time - prev(_time) < 10→ 경보 “Concurrent driver unload & use‑after‑free”.
정규식 예시
(?i)asd_ha.*(free|killed).*tasklet– 커널 메시지에서 asd_ha 해제와 tasklet 관련 문구를 포착.
오탐 튜닝
- 정상적인 드라이버 재로드 시 발생하는 “module aic94xx loaded” 로그는 위 정규식에 포함되지 않으므로 무시한다.
- KASAN이 비활성화된 환경에서는 해당 문자열이 없을 수 있으니,
auditd기반 규칙을 보조적으로 활성화한다.
🛡️ 완화 방안
즉시(긴급 차단)
/etc/modprobe.d/blacklist.conf에blacklist aic94xx추가하고modprobe -r aic94xx로 언로드한다.- 구현 난이도: ★★ (간단한 파일 편집 및 모듈 제거)
- 운영 영향: 해당 SCSI 컨트롤러를 사용하는 스토리지 디바이스가 비활성화되므로, 서비스 중단 위험 존재.
- 검증 방법:
lsmod | grep aic94xx로 모듈이 로드되지 않음 확인.
단기(완화)
- 커널에 KASAN 또는
CONFIG_DEBUG_SLAB를 활성화하여 메모리 손상을 실시간으로 기록한다. (sysctl -w kernel.kaslr=1등) - udev 규칙을 추가해 hot‑unplug 이벤트를 차단하거나 로그만 남기도록 설정(
ACTION=="remove", SUBSYSTEM=="scsi_device", RUN+="/bin/logger …").- 구현 난이도: ★★★ (시스템 재부팅 필요)
- 운영 영향: 디바이스 교체·유지보수 시 불편 증가.
- 검증 방법:
udevadm test /sys/block/sdX로 규칙 적용 여부 확인.
근본(해결)
- 배포판에서 제공하는 최신 커널로 업그레이드한다. CVE-2025-71075는 Linux kernel 2.6.19.1‑5.10.248, 5.11‑5.15.198, 5.16‑6.1.160, 6.2‑6.6.120, 6.7‑6.12.64, 6.13‑6.18.3 등 모든 지원 버전에서 패치가 포함되어 있다.
- 구현 난이도: ★★★★ (재부팅 및 호환성 테스트 필요)
- 운영 영향: 커널 교체에 따른 드라이버/패키지 재컴파일 가능성, 일시적 서비스 중단.
- 검증 방법:
uname -r로 커널 버전 확인 후/proc/kallsyms | grep asd_ha_remove에 패치된 함수(tasklet_kill)가 포함됐는지 확인.
잔여 리스크
- 모듈을 블랙리스트한 경우, 해당 하드웨어를 사용해야 하는 워크로드는 대체 드라이버가 없으면 서비스 중단 위험이 남는다.
- 커널 업데이트 후에도 KASAN 미활성화 환경에서는 동일 메모리 손상이 로그에 남지 않을 수 있어 탐지가 어려워진다.
인시던트 대응 플레이북 (요약)
dmesg·/var/log/kern.log에 “use‑after‑free” 혹은 “asd_ha” 메시지 확인 → 경보 발생 시 즉시 호스트 격리.auditctl -l로 MODULE_UNLOAD 이벤트 기록을 조회, 최근 hot‑unplug 로그(udev)와 연계.- 메모리 덤프(
crash툴) 수집 후 취약 함수 주소(asd_ha_remove)가 호출된 스택 트레이스 분석. - 필요 시 위 즉시 차단(module blacklist) 조치를 적용하고, 패치 적용 계획을 수립한다.
본 보고서는 다중 소스 교차검증이 확인된 사실([교차검증])과 EPSS 0.00126이라는 실측 악용 예측값([실측 악용예측])을 근거로 우선순위가 “scheduled (이번 주 내)” 로 결정되었음([우선순위 결정])에 따라 작성되었습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00126 · exploit=hard · in_scope=None