[공격] 분석 — CVE-2025-71075
CVE-2025-71075 is a local use‑after‑free in the aic94xx SCSI driver’s device‑removal path; immediate kernel patching or driver disablement is required to block privilege escalation.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00126 · 악용난이도 hard
🔍 공격 기법
-
공격 전제
- 로컬 사용자(일반 권한)이며, 시스템에 aic94xx(
scsi_transport_aic94xx) 드라이버가 로드된 커널 버전(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 등)에서 동작 중이어야 함. - 커널 로그에
asd_ha구조체가 할당된 흔적이 있으면 확인 가능([교차검증] 다중 소스 일관성 확인).
- 로컬 사용자(일반 권한)이며, 시스템에 aic94xx(
-
정찰
/sys/bus/pci/drivers/aic94xx/*/remove혹은modprobe -r aic94xx등으로 드라이버·디바이스 존재 여부를 탐색.lsmod | grep aic94xx,dmesg | grep asd_ha로 메모리 할당 시점을 파악.
-
초기 접근
- 일반 사용자라도
sysfs에 쓰기 권한이 부여된 경우, 혹은 권한 상승 전 단계에서 SUID 바이너리를 이용해echo 1 > /sys/.../remove같은 디바이스 제거 명령을 실행할 수 있음.
- 일반 사용자라도
-
실행·권한 획득
- 디바이스 제거 시점에 아직 진행 중인 I/O 작업이 tasklet(
asd_tasklet)으로 예약되어 있을 때,asd_pci_remove()가tasklet_kill()없이 바로kfree(asd_ha)를 수행한다는 결함을 이용. - 공격자는 고의로 I/O(예:
sg_write등) 를 트리거해 tasklet이 스케줄된 뒤, 즉시 디바이스 제거 명령을 발동 → race condition 발생. - 해제된
asd_ha메모리를 재사용하는 다른 커널 객체에 대한 포인터를 조작함으로써 임의 코드 실행 또는 커널 권한 상승이 가능( CVSS 벡터 C:H/I:H/A:H).
- 디바이스 제거 시점에 아직 진행 중인 I/O 작업이 tasklet(
-
지속·영향
- 성공 시 루트 쉘 획득 → 시스템 전체 장악, 보안 모듈 우회, 백도어 설치 등 지속적 악용이 가능.
- 동일 커널 라인에 존재하는 다른 SCSI 드라이버에서도 유사한 패턴이 재현될 위험이 있음.
악용 가능성: 이 취약점은 AV:L (로컬 접근)·AC:L (공격 난이도 낮음)·PR:L (저권한)·UI:N (사용자 개입 없음)이라는 CVSS 벡터가 의미하듯, 로컬에서 저권한 계정만 있으면 이론적으로는 쉽게 시도할 수 있습니다. 그러나 실제 악용은 asd_pci_remove() 함수가 호출되는 순간에만 발생하는 레이스 컨디션이며, 이는 핫‑언플러그 또는 모듈 언로드라는 특정 상황에서만 노출됩니다. 즉, 공격자는 장치를 물리적으로 뽑거나 rmmod aic94xx 명령을 실행해 제거 과정을 트리거하고, 동시에 스케줄된 tasklet이 아직 종료되지 않은 미세한 시간 창에 메모리를 해제하도록 강제해야 합니다. 이러한 타이밍 요구는 일반적인 로컬 공격보다 구현 난이도가 높아 “hard” 등급을 유지하게 됩니다. EPSS 0.00126이라는 매우 낮은 실측 확률과 KEV에 등재되지 않은 점은 현재까지 실제 악용 사례가 거의 보고되지 않았음을 뒷받침합니다. 공격 표면은 /sys/bus/pci/devices/.../remove 와 같은 sysfs 엔드포인트, 그리고 내부에서 사용되는 tasklet_kill() 전후의 메모리 해제 로직에 국한됩니다. 따라서 성공적인 이용을 위해서는 정확한 레이스 타이밍 확보와 해당 디바이스가 시스템에 존재하는 환경이 전제되어야 합니다.
💥 영향 분석
- 권한 상승: 로컬 사용자는 루트 권한을 획득한다.
- 서비스 거부(DoS): 비정상적인 메모리 해제 후 커널 OOPS가 발생하면 시스템이 패닉 상태에 빠질 수 있다.
- 공급망 확대 위험: 다수의 커널 버전·배포판에 동일 드라이버가 포함돼 있어, 한 번 침투 시 같은 이미지로 배포된 여러 서버를 동시에 위협한다.
🔗 관련 취약점·체이닝
- 동일 CWE(1240 – Use‑After‑Free) 유형에서 흔히 보이는 패턴:
tasklet_kill누락 → 메모리 해제 전 동기화 실패. - 가능한 체인
- CVE‑2024‑XXXX (예시, 실제 번호는 확인 필요)와 같이 불충분한 권한 검증을 이용해
sysfs쓰기를 확보 → 이 CVE와 결합하면 초기 접근이 쉬워진다. - CVE‑2023‑XXXXX(커널 스택 오버플로우)와 연계하여 메모리 레이아웃을 조정한 뒤, 본 Use‑After‑Free를 이용해 최종 RCE를 달성할 수 있다.
- CVE‑2024‑XXXX (예시, 실제 번호는 확인 필요)와 같이 불충분한 권한 검증을 이용해
- 추정: 다른 SCSI 드라이버(
megaraid,mptspi등)에서도 비슷한 tasklet 동기화 결함이 존재할 가능성이 있어, 동일 체인으로 확장될 위험이 있다.
🔎 탐지
- 커널 로그:
BUG: use-after-free혹은asd_ha관련 OOPS 메시지가 발생하면 경보. - sysfs 이벤트:
/sys/bus/pci/drivers/aic94xx/*/remove파일에 대한 쓰기 시도 기록( auditd, SELinux 로그). - tasklet 상태:
cat /proc/interrupts혹은trace_printk로 tasklet 스케줄·해제 타이밍 이상 징후 감시. - 프로세스 행동: 일반 사용자 계정에서
modprobe -r aic94xx또는echo 1 > ...remove명령 실행 시 알림.
🛡️ 완화 방안
- 패치 적용: 커널 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 등 모든 영향을 받는 버전에 대해 upstream 패치를 즉시 적용(
tasklet_kill()삽입). - 드라이버 비활성화: aic94xx 드라이버가 필요 없을 경우
/etc/modprobe.d/blacklist.conf에blacklist aic94xx추가하고 재부팅. - 권한 제한:
sysfs디바이스 제거 파일에 대한 쓰기 권한을 root 전용으로 제한, SELinux/AppArmor 정책 강화. - 모듈 언로드 금지:
/proc/sys/kernel/modules_disabled=1설정(가능 시) 혹은modprobe -r aic94xx실행을 차단하는 PAM/ACL 규칙 적용. - 감시 체계 강화: 위 탐지 지표를 SIEM에 연동하여 실시간 알림 구축, EPSS 0.00126 수준의 실제 악용 가능성을 감안해 주기적인 로그 검토 수행([실측 악용예측] EPSS=0.00126, hard).
이 조치를 통해 현재 위협을 차단하고, 향후 유사한 Use‑After‑Free 결함에 대한 방어 기반을 강화할 수 있습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00126 · exploit=hard · in_scope=None