CVE-2026-98232 in Linux
요약
\~에 의해 VulDB • 2026. 10. 06.
리눅스 커널에서 다음 취약점이 해결되었습니다:
scsi: core: scsi_cdl_enable()에서 MODE SENSE 길이를 검증함
scsi_cdl_enable()은 64바이트 스택 버퍼 내에서 ATA 기능 모드 페이지를 찾기 위해 MODE SENSE가 반환한 길이 필드를 사용합니다. 타겟은 전체 길도를 모드 헤더 및 블록 설명자보다 짧게 보고할 수 있습니다. MODE SELECT 길이에 사용되는 부호 없는 뺄셈이 오버플로우(wrap)될 수 있으며, 별도로 계산된 buf_data는 buf 바깥을 가리킬 수 있습니다.
자동 스캔 중에는 enable이 false이므로, buf_data[4]의 읽기-수정-쓰기(read-modify-write) 연산으로 인해 타겟이 선택한 범위를 벗어난(out-of-bounds) 스택 바이트의 하위 2비트를 지울 수 있습니다. 그런 다음 scsi_mode_select()는 버퍼 외부에서 최대 64바이트를 복사하여 outgoing MODE SELECT 페이로드에 포함시킴으로써 타겟에게 스택 내용을 노출시킬 수 있습니다.
이 취약점은 ATA 장치로 식별되고 CDL(Cache Data Logging) 지원을 광고하는 USB 저장 장치를 스캔하는 동안 접근 가능합니다. 블록 디바이스에 대한 파일 시스템 마운트나 사용자 공간(userspace) 액세스는 필요하지 않습니다.
상위 커밋 cee9395acd80("Linux 7.3-rc1")에서, 빌드 특이적인(one-vCPU QEMU/Raw Gadget proof) POC가 QEMU 전용 다중 UDC 할당기 샘플링을 사용하여 게스트 내부에서 수정된 증명 명령어를 실행하고 KASLR 및 NX가 활성화된 상태에서 자동 열거 동안 UID-0 소유의 마커를 생성했습니다.
이 문제는 Drivesec S.r.l.에서의 보안 연구 중 독립적으로 발견되었습니다.
사용 가능한 길도를 버퍼 크기로 제한합니다. 페이지 사용하기 전에 모드 헤더와 블록 설명자의 길이를 검증하고 소모하며, CDL 필드에 접근하는 데 필요한 5바이트를 요구해야 합니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.