Kestrel
CVE-2025-68818DGX_B· 2026년 8월 1일 AM 02:02

[방어] 분석 — CVE-2025-68818

CVE-2025-68818 is a high‑severity NULL‑pointer dereference in the Linux qla2xxx SCSI driver abort path that can cause kernel panic, and the top priority action is to immediately block external iSCSI/FCoE Abort commands until a patched kernel is deployed.

📋 요약

  • 심각도 high · CVSS 8.8 · EPSS 0.00262 · 악용난이도 hard

🔍 공격 기법

qla2xxx 드라이버의 __qla2x00_abort_all_cmds() 가 스핀락을 해제한 뒤 sp->done() 을 호출하면서 sp->cmd_type 검증을 누락한다. TARGET‑MODE(TYPE_TGT_CMD) 상태에서 이 함수가 실행되면 잘못된 포인터를 역참조해 NULL pointer dereference → 커널 OOPS → 시스템 패닉이 발생한다.
트리거 조건은 SCSI Initiator(예: iSCSI 또는 FCoE)가 Abort 명령을 전송하고, 해당 명령이 드라이버의 abort 경로에 도달했을 때이다. 네트워크 접근 권한만 있으면 (AV:A) 로컬 권한 없이도 공격이 가능하나, 실제로는 qla2xxx 모듈이 로드된 호스트와 iSCSI/FCoE 연결이 필요하다.

악용 가능성: 이 취약점은 CVSS 벡터 AV:A/AC:L/PR:N/UI:N 로 표시되므로, 인접 네트워크(예: 동일 LAN 또는 스위치에 연결된 서버)에서 별도의 인증 없이 바로 악용할 수 있으며 공격 복잡도는 낮고 사용자 개입이 전혀 필요하지 않음을 의미합니다.
EPSS 값 0.00262 는 현재까지 실제 악용 사례가 드물지만, 완전히 무시하기엔 충분히 존재하는 확률을 보여주며, KEV에 등재되지 않은 점은 아직 대규모 공격으로 이어지지는 않았다는 것을 나타냅니다.
트리거 조건은 qla2xxx SCSI 드라이버의 __qla2x00_abort_all_cmds() 함수가 abort 경로에서 명령 타입을 검증하지 않아 TYPE_TGT_CMD 에서 잘못된 포인터를 호출하는 상황이며, 이는 특수히 조작된 SCSI Abort 요청으로 발생합니다.
공격 표면은 해당 드라이버가 로드된 Linux 커널 시스템의 SCSI 서브시스템이며, Fibre Channel(HBA) 또는 FCoE 인터페이스를 통해 외부 호스트가 SCSI 명령을 전송할 수 있는 엔드포인트가 노출될 때 활용됩니다.
따라서 공격자는 동일 네트워크에

💥 영향 분석

  • 가용성: NULL pointer dereference 로 인해 커널 패닉 → 전체 시스템 다운 및 스토리지 어플라이언스·가상화 호스트 연쇄 장애 발생 가능.
  • 무결성: 비정상 재부팅 시 파일시스템·블록 디바이스 복구 과정에서 데이터 손실 위험.
  • 권한 상승: 이론적으로 커널 OOPS 후 panic_on_oops=1 설정이 없을 경우 루트 권한 쉘 획득 가능성이 있으나, 현재 공개된 PoC는 없어 “추정:” 수준이다.

🔗 관련 취약점·체이닝

  • 과거 qla2xxx 드라이버에서 도입된 lock‑free abort 로직과 연관된 버그(CVE‑2024‑xxxx 등)와 동일 코드 경로가 재활용됨.
  • iSCSI Target 스택(iscsi_target, tgt)에서도 Abort 처리 부재로 인한 DoS 취약점이 보고된 바 있어, 두 스택을 연계하면 복수의 스토리지 서비스가 동시에 마비될 수 있음.

🔎 탐지

로그·소스핵심 필드/패턴탐지 규칙(예시)
kernel dmesg / /var/log/kern.logBUG: kernel NULL pointer dereference + qla2xxx 모듈명index=kernel (message="*BUG:*NULL*pointer*dereference*" AND message="*qla2xxx*")
syslog (/var/log/messages)ISP System Errormbx1= 값이 연속 등장search "qla2xxx" "ISP System Error"
kdump/crash dump스택에 __qla2x00_abort_all_cmds+0xsp->cmd_type 관련 주소 표시정규식: (?i)BUG:\s+kernel\s+NULL\s+pointer\s+dereference.*qla2xxx.*__qla2x00_abort_all_cmds
IDS (Snort/Suricata) – iSCSI (TCP 3260)Opcode 0x1d(Abort) + 비정상적인 길이 필드(예: >256)`alert tcp $HOME_NET any -> $EXTERNAL_NET 3260 (msg:"Suspicious iSCSI Abort"; content:"
IDS – FCoE (UDP 3225)FC_CT abort CT request with 이상한 payload size`alert udp $HOME_NET any -> $EXTERNAL_NET 3225 (msg:"Suspicious FCoE Abort"; content:"

오탐 튜닝

  • 정상적인 스토리지 복구 시 발생하는 ISP System Error 로그는 NULL pointer dereference 와 함께 나오지 않으므로, 위 두 키워드를 AND 로 결합해 알림을 제한한다.
  • iSCSI Abort 패킷은 정상 트래픽에서도 존재하므로, byte_test 로 비정상적인 길이(>256)와 동시에 커널 로그에 BUG: 가 기록된 경우에만 경보를 생성하도록 연계 규칙을 적용한다.

🛡️ 완화 방안

  • qla2xxx 모듈 파라미터 target_mode=0(가능한 경우) 로 Target‑Mode 기능을 비활성화한다.
    • /etc/modprobe.d/qla2xxx.confoptions qla2xxx target_mode=0 추가 후 modprobe -r qla2xxx && modprobe qla2xxx.
  • 커널 파라미터 panic_on_oops=1 로 OOPS 발생 시 자동 재부팅을 강제하고, kdump 를 활성화해 사고 후 포렌식 확보.
    • /etc/sysctl.d/99-kernel.conf: kernel.panic_on_oops = 1 적용 후 sysctl -p.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=8.8 · non-KEV · EPSS=0.00262 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…