[공격] 분석 — CVE-2025-68818
A kernel NULL pointer dereference in the qla2xxx driver's abort path allows for a Denial-of-Service (DoS) via system crash, requiring immediate patching of Linux kernels utilizing QLogic FC adapters in target mode.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.00177 · 악용난이도 hard
🔍 공격 기법
- 취약점 원리:
__qla2x00_abort_all_cmds()함수가 lockless command completion을 수행하는 과정에서sp->cmd_type검증 없이sp->done()콜백을 호출함. Target-mode(TYPE_TGT_CMD) 환경에서 이 동작은 유효하지 않은 포인터로의 점프를 유발하여 NULL pointer dereference 및 Kernel Panic(Oops)을 일으킴. - 공격 표면:
- 대상: QLogic FC HBA 드라이버(
qla2xxx)가 로드된 Linux 커널. - 조건: 시스템이 Target-mode로 동작 중이어야 하며, SCSI abort 경로가 트리거되어야 함.
- 대상: QLogic FC HBA 드라이버(
- 공격 체인 및 전제 조건:
- 정찰/접근: 공격자는 FC(Fibre Channel) 네트워크를 통해 대상 서버에 접근 가능한 상태여야 함 (Local 또는 Remote Fabric).
- 트리거: 특정 SCSI 커맨드 에러나 타임아웃을 유발하여
__qla2x00_abort_all_cmds()함수가 호출되도록 강제함. - 실행: 드라이버가
TYPE_TGT_CMD타입의 명령어를 처리하는 중 abort 경로로 진입하면, 검증되지 않은sp->done()호출로 인해 커널 모드에서 유효하지 않은 메모리 주소(0x0)를 fetch 함. - 결과:
PF: supervisor instruction fetch in kernel mode와 함께 시스템 즉시 중단.
- 추정 CVSS 벡터 분석:
- AV (Attack Vector): Network/Local (FC Fabric 접근 권한 필요).
- AC (Attack Complexity): High (특정 하드웨어 모델 및 Target-mode 설정 필요).
- PR (Privileges Required): None/Low (네트워크 레벨의 SCSI 요청 가능 시).
- UI (User Interaction): None.
악용 가능성: 본 취약점은 qla2xxx 드라이버의 __qla2x00_abort_all_cmds() 함수 내에서 스핀락(Spinlock) 없이 커맨드를 처리하는 과정 중, sp->cmd_type 검증 누락으로 인해 잘못된 포인터로 점프하는 Race Condition 및 Memory Corruption 결함입니다. 공격 표면은 특정 QLogic FC HBA 하드웨어가 장착된 Linux 시스템의 SCSI 스택이며, 특히 Target-mode 설정에서 TYPE_TGT_CMD 타입의 명령어가 처리될 때 트리거됩니다. CVSS 관점에서 Local 권한(PR:L)과 매우 정교한 타이밍 제어(AC:H)가 필요하므로 공격 난이도는 Hard로 판정됩니다. EPSS 수치가 0.00177로 낮고 KEV에 등재되지 않은 점은 실제 야생에서 자동화된 익스플로잇이 유포될 가능성이 희박함을 시사합니다. 그러나 커널 메모리 영역에서의 잘못된 함수 포인터 호출은 이론적으로 권한 상승(LPE)이나 시스템 크래시(DoS)로 이어질 수 있어, 물리적 접근이나 이미 내부 침투가 완료된 환경에서는 치명적인 위협이 됩니다. 결과적으로 하드웨어 종속성이 강하고 트리거 조건이 까다롭지만, 커널 레벨의 제어권을 획득할 수 있는 잠재적 경로를 제공합니다.
💥 영향 분석
- 가용성 완전 상실: 커널 패닉으로 인한 시스템 즉시 크래시(DoS).
- 서비스 중단: 스토리지 타겟 서버로서의 기능이 완전히 정지되어 연결된 모든 호스트의 I/O 장애 유발.
🔗 관련 취약점·체이닝
- 공격 실현성 판단: 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, EPSS 0.00177(백분위 0.07468) 및 exploit=hard 등급을 근거로 실제 악용 가능성은 매우 낮음. 따라서 우선순위를
monitor로 결정함. - 추정 체이닝 경로:
- DoS $\rightarrow$ Failover 유도: 고가용성(HA) 구성 환경에서 특정 노드를 크래시시켜 트래픽을 취약한 다른 노드로 유도하거나, 관리자의 긴급 조치 과정에서 발생하는 설정 오류를 이용한 2차 공격 가능성.
- Memory Corruption $\rightarrow$ LPE: 현재는 단순 NULL pointer dereference로 인한 Crash(DoS)이지만, 추정: 만약
sp->done()포인터 위치에 공격자가 제어 가능한 값이 배치될 수 있는 다른 메모리 오염 취약점이 존재한다면, 커널 권한의 임의 코드 실행(LPE/RCE)으로 체이닝될 가능성이 있음.
🔎 탐지
- Kernel Log 모니터링:
dmesg또는/var/log/syslog에서 다음 패턴 감시:BUG: kernel NULL pointer dereference, address: 0000000000000000PF: supervisor instruction fetch in kernel modeqla2xxx드라이버 관련ISP System Error및Performing ISP error recovery메시지.
🛡️ 완화 방안
- 근본 해결: 해당 커밋(0367076b0817d5c75dfb83001ce7ce5c64d803a9)을 Revert 한 최신 Linux 커널 패치 적용.
- 즉시 조치: 불필요한 Target-mode 설정 해제 및 FC Fabric 접근 제어 리스트(ACL/Zoning)를 강화하여 비인가된 SCSI 요청 차단.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.00177 · exploit=hard · in_scope=None