CVE-2026-98545 in Linux
요약
\~에 의해 VulDB • 2026. 10. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ata: libata-scsi: ATA pass-through sense descriptor 쓰기 제한
ATAPI 장치로의 ATA PASS-THROUGH 명령이 실패할 경우, sense 버퍼에는 기기의 REQUEST SENSE 응답이 저장되며, `ata_scsi_set_passthru_sense_fields()` 함수는 ATA Status Return descriptor를 추가할 때 추가 길이 바이트인 sb[7]을 신뢰합니다. 결함이 있거나 악의적인 장치는 이를 이용해 커널이 96바이트 버퍼 범위를 벗어나 읽고 쓰는 상황을 세 가지 방식으로 유발할 수 있습니다:
- `scsi_sense_desc_find()` 함수에 버퍼 길제로 sb[7] + 8이 전달되므로, sb[7]에 대한 clamp 연산은 아무런 효과를 내지 못하며 순회가 배열 끝을 벗어납니다.
- 끝에 가까운 곳에 있는 type-9 descriptor가 검증 없이 채워집니다. - sb[8 + len] 위치의 새 descriptor에는 len + 14바이트가 아닌 len + 22바이트가 필요하므로, len이 75~82인 경우 최대 8바이트만큼 끝을 벗어쓰게 됩니다.
qemu에서 KASAN을 사용하여 시뮬레이션된 ATAPI REQUEST SENSE 응답 패치를 적용해 재현되었습니다:
BUG: KASAN: slab-out-of-bounds in scsi_sense_desc_find+0x1a5/0x210 BUG: KASAN: slab-out-of-bounds in ata_scsi_qc_complete+0x1a15/0x1a50
이 패치를 적용하면 두 가지 오류가 모두 사라지며, 유효한 descriptor는 여전히 채워집니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.