[공격] 분석 — CVE-2026-23110
A race condition in the Linux kernel SCSI layer allows a local attacker to induce a permanent I/O hang (DoS), though high complexity and low EPSS suggest monitoring over immediate emergency patching.
📋 요약
- 심각도 medium · CVSS 4.7 · EPSS 0.00095 · 악용난이도 hard
🔍 공격 기법
본 취약점은 Linux 커널의 SCSI core 계층에서 scsi_dec_host_busy()와 scsi_eh_inc_host_failed() 함수 간의 메모리 순서(Memory Ordering) 및 레이스 컨디션으로 인해 발생한다.
- 공격 표면 (Attack Surface):
- 대상: SCSI 호스트 어댑터 드라이버 및 관련 I/O 경로.
- 진입점: 로컬 시스템 권한을 가진 사용자가 SCSI 장치에 대한 대량의 I/O 요청을 생성하거나, 특정 타이밍에 명령 완료(Completion)와 실패(Failure)를 유도하는 인터페이스 접근.
- 트리거 조건 및 원리:
scsi_dec_host_busy()에서SCMD_STATE_INFLIGHT플래그를 제거하는 쓰기 작업이scsi_host_busy()카운팅 읽기 작업보다 뒤로 밀리는 메모리 재정렬(Reordering) 발생.- 동시에 다른 CPU가
scsi_eh_inc_host_failed()를 호출하여 호스트 실패 상태를 업데이트할 때, 잘못된 busy count 값을 읽게 됨. - 결과적으로 Error Handler(EH)를 깨워야 하는 최종 조건(
host_busy == host_failed)이 충족되지 않은 채 모든 프로세스가 종료됨.
- 공격 체인:
- 정찰: 시스템의 SCSI 드라이버 버전 및 커널 버전 확인 (영향 범위: 5.5 ~ 6.18.8 등 광범위).
- 초기 접근: 로컬 사용자 권한 확보 (
PR:L). - 실행: 정밀하게 타이밍을 맞춘 I/O 요청 전송 $\rightarrow$ CPU 간 메모리 가시성 불일치 유도 $\rightarrow$ SCSI Error Handler 무력화.
- 영향: SCSI 호스트를 통한 모든 I/O가 Stuck 상태가 되어 시스템 서비스 중단 (DoS).
- CVSS 벡터 분석:
AV:L/AC:H/PR:L은 로컬 권한이 필요하며, 메모리 재정렬이라는 매우 까다로운 타이밍(High Complexity)을 맞춰야 함을 의미한다.
악용 가능성: 본 취약점은 공격 난이도가 매우 높으며(Hard), 실질적인 원격 악용 가능성은 극히 낮습니다. AV:L과 PR:L 벡터에서 알 수 있듯, 공격자는 이미 시스템에 로그인한 낮은 권한의 로컬 계정을 보유해야 하며, 커널 내부의 scsi_dec_host_busy() 함수 내 메모리 순서(Memory Ordering) 문제로 발생하는 Race Condition을 정밀하게 트리거해야 합니다. 특히 AC:H 등급은 특정 타이밍에 여러 CPU가 동시에 SCSI 명령 완료 및 실패 상태를 처리하는 매우 희귀한 경쟁 상태가 형성되어야 함을 의미합니다. EPSS 수치가 0.00095로 매우 낮고 KEV에 등재되지 않은 점은, 이론적인 결함임에도 불구하고 실제 공격자가 이를 무기화하여 외부에서 성공시킨 사례가 거의 없음을 뒷받침합니다. 공격 표면은 SCSI 호스트의 I/O 처리 경로 및 관련 커널 함수로 제한되며, 공격자는 특정 엔드포인트가 아닌 시스템 하부의 스토리지 프로토콜 계층을 직접 자극해야 합니다. 결과적으로 이 취약점은 데이터 탈취나 권한 상승보다는 I/O 정체로 인한 서비스 거부(DoS) 상태를 유발하는 특성을 가집니다.
💥 영향 분석
- 가용성 상실 (DoS): SCSI 레이어의 Error Handler가 깨어나지 못해 I/O 상태 전이가 불가능해진다. 이는 해당 SCSI 호스트에 연결된 모든 저장 장치의 입출력 중단으로 이어져 시스템 커널 패닉이나 서비스 불능 상태를 야기한다.
🔗 관련 취약점·체이닝
- 체이닝 경로 (추정): 본 취약점 단독으로는 권한 상승(LPE)이나 원격 코드 실행(RCE)이 불가능하며 오직 가용성 저해만 가능함. 하지만 다음과 같은 시나리오로 체이닝될 수 있음:
- DoS $\rightarrow$ Failover 유도 $\rightarrow$ 타 취약점 공격: 클러스터 환경에서 특정 노드의 I/O를 중단시켜 트래픽을 다른 노드로 강제 전환(Failover)시킨 후, 해당 노드에 존재하는 다른 취약점을 공격하는 경로.
- Race Condition $\rightarrow$ Memory Corruption (추정): 본 결함은 상태 머신(State Machine)의 논리적 오류지만, 유사한 레이스 컨디션이 메모리 관리 영역에서 발생할 경우 Use-After-Free 등으로 이어질 가능성이 있음.
🔎 탐지
- 커널 로그 모니터링:
dmesg또는/var/log/syslog에서 SCSI 관련 타임아웃 메시지가 반복적으로 발생함에도 불구하고 Error Handler가 동작하지 않고 I/O가 무한 대기하는 패턴 감시. - 상태 지표: 특정 SCSI 장치에 대한 I/O Wait 수치가 비정상적으로 급증하며 시스템이 응답하지 않는 상태 확인.
🛡️ 완화 방안
- 근본 해결: 메모리 배리어(Memory Barrier)가 적용된 최신 커널 버전으로 업데이트하여 쓰기 작업의 가시성을 보장해야 함.
- 즉시 조치: 신뢰할 수 없는 로컬 사용자의 직접적인 하드웨어 장치 접근 권한을 제한하고, 중요 시스템의 경우 SCSI 타임아웃 설정 및 모니터링 강화.
[분석 근거]
- 교차검증: 다중 소스 데이터 간 일관성이 확인되어 신뢰도 1.0으로 분석함.
- 실측 악용예측: EPSS 0.00095(백분위 0.00802)로 실제 야생에서 악용될 확률이 극히 낮음. 이는 이론적 CVSS 점수보다 실전 위험도가 현저히 낮음을 시사함.
- 우선순위 결정:
monitor등급 부여. 근거는 $\text{CVSS 4.7} \times \text{non-KEV} \times \text{EPSS Low} \times \text{Exploit Hard}$ 조합으로, 즉각적인 패치보다는 업데이트 주기 내 반영 및 모니터링이 효율적이라고 판단함.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=4.7 · non-KEV · EPSS=0.00095 · exploit=hard · in_scope=None