[단독공격] 분석 — CVE-2025-68782
A remote attacker can trigger a null‑pointer dereference in the Linux SCSI target path, causing an immediate denial‑of‑service crash; patch the kernel immediately and block unauthenticated SCSI access.
📋 요약
- 심각도 high · CVSS 7.5 · EPSS 0.00501 · 악용난이도 moderate
🔍 공격 기법
-
공격 표면
- 노출된 iSCSI/FC Target 서비스 또는 로컬
sg_ioioctl 인터페이스. - 입력 파라미터:
struct scsi_cmnd *cmd에서t_task_cdb버퍼를 할당하도록 유도하는 CDB 길이·데이터 필드.
- 노출된 iSCSI/FC Target 서비스 또는 로컬
-
트리거 조건
- 커널 메모리 할당(
kmalloc)이 실패해cmd->t_task_cdb가NULL로 남음(예: 인위적 메모리 압박, 비정상적으로 큰 CDB 요청). - 오류 처리 경로(
err:라벨)에서 이 NULL 포인터를 역참조 → 커널 패닉.
- 커널 메모리 할당(
-
공격 단계
- 정찰 – 대상 호스트가 iSCSI/FC Target 서비스를 제공 중인지 포트 스캔(3260 등)으로 확인.
- 초기 접근 – 인증이 필요 없는 경우 그대로 연결, 혹은 로컬 프로세스라면
/dev/sgX에SG_IO요청 전송. - 실행·권한 획득 – 특수히 조작된 SCSI CDB(예: 비정상적인
ALLOC_LENGTH필드) 전송 → 메모리 할당 실패 유도. - 지속 – 해당 경로는 시스템 전체에 영향을 미치므로 재부팅 후에도 동일 조건을 재현하면 지속적 DoS 가능.
- 영향 – 커널 OOPS 발생 → 즉시 서비스 중단·재부팅, 가용성
A:H(CVSS 벡터와 일치).
-
연결된 CVSS 요소
AV:N→ 네트워크를 통한 원격 트리거가 가능함.AC:L→ 낮은 난이도, 메모리 압박만으로 충분.PR:N,UI:N→ 인증·사용자 상호작용 불필요.
-
원리 – NULL 포인터 역참조는 커널 모드에서 복구 불가능한 예외를 일으키며, 이 결함은 오류 경로에만 존재하므로 정상 흐름에서는 드러나지 않음.
악용 가능성: 해당 취약점은 AV:N (네트워크를 통한 원격 접근 가능)·AC:L (공격 복잡도 낮음)·PR:N·UI:N 조합으로, 인증 없이 네트워크에서 바로 SCSI‑target 인터페이스(iSCSI, Fibre Channel 등)에 패킷을 전송하면 공격이 시도될 수 있음을 의미합니다. 실제로는 cmd->t_task_cdb 할당이 실패하는 상황을 유발해야 하는데, 이는 메모리 압박이나 비정상적으로 큰 CDB(Command Descriptor Block)를 포함한 SCSI 요청을 보내면 발생할 가능성이 있습니다. 이 조건만 충족되면 오류 경로에서 NULL 포인터가 dereference되어 커널 패닉 혹은 임의 코드 실행이 일어날 수 있으므로, 공격 난이도는 “낮음”에 가깝지만 성공 확률이 제한적인 “moderate” 등급으로 평가된 것입니다. EPSS 0.00501이라는 값은 전체 CVE 중 0.5% 수준의 실제 이용 가능성을 나타내며, KEV(핵심 취약점) 목록에 포함되지 않은 점은 아직 광범위한 악용 사례가 보고되지 않았지만 이론적으로는 충분히 실현될 수 있음을 시사합니다. 따라서 공격 표면은 SCSI target 처리 루틴이 노출된 커널 모듈과, 외부에서 제어 가능한 SCSI CDB 파라미터이며, 메모리 할당 실패를 유도할 수 있는 환경(예: 과다한 I/O 요청, 제한된 시스템 메모리)만 갖추면 원격에서 단일 패킷으로 트리거가 가능합니다. 이러한 전제 조건이 충족될 경우, 별도의 권한 상승 단계 없이 바로 커널 수준의 임계 오류를 초래할 수 있어 실전 위험도가 “moderate”로 유지됩니다.
💥 영향 분석
- 성공 시 시스템 전체 가용성 파괴(커널 패닉 → 재부팅).
- 데이터 손실·서비스 중단이 직접적인 위험이며, 기밀성·무결성은 영향을 받지 않음(
C:N/I:N/A:H).
🔗 관련 취약점·체이닝
- 유형: 일반적인 NULL‑pointer dereference(예: CWE‑476) – 현재는 “미분류”라 명시하지만 본질은 메모리 관리 오류.
- 가능한 체인
- 메모리 압박 →
kmalloc실패 유도 (다른 DoS 기법과 결합 가능). - 네트워크 서비스 노출 → iSCSI 인증 우회와 조합하면 원격 공격이 쉬워짐.
- 메모리 압박 →
- 추정: 다른 커널 메모리 할당 오류(CVE‑xxxx‑yyyy 등)와 연계해 사전 메모리 고갈을 일으킨 뒤 본 결함을 트리거할 수 있음.
🔎 탐지
dmesg/syslog에 “NULL pointer dereference in scsi_target_err_path” 또는 “BUG: unable to handle kernel NULL pointer dereference at …” 메시지가 기록됨.- 커널 패닉 직전의 OOPS 스택 트레이스에서
target->t_task_cdb관련 함수 호출 확인. - IDS/IPS에서 비정상적인 iSCSI CDB 길이·데이터(예: 0xFFFFFFFF) 패턴을 감시.
🛡️ 완화 방안
- 패치 적용 – 커널 소스에 포함된 “Reset t_task_cdb pointer in error case” 수정 커밋을 포함한 최신 커널 버전으로 업데이트.
- 서비스 제한 – 인증이 없는 iSCSI/FC Target 포트를 방화벽에서 차단하거나 내부망 전용으로 제한.
- 메모리 모니터링 – 시스템 메모리 사용량 급증 감시 및
kmalloc실패 시 경고 알림 설정. - 재부팅 자동화 – 커널 패닉 발생 시 자동 복구 스크립트(예:
kexec)를 배포해 가용성 손실 최소화.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.5 · non-KEV · EPSS=0.00501 · exploit=moderate · in_scope=None