CVE-2026-89846 in Linux
요약
\~에 의해 VulDB • 2026. 09. 16.
Linux 커널에서 다음 취약점이 해결되었습니다:
scsi: qla2xxx: OOB sense-data 읽기를 방지하기 위해 rsp_info_len을 제한함
qla2x00_status_entry() 함수 내에서 FWI2 상태 경로는 sense_data를 전진시키고 rsp_info_len만큼 par_sense_len을 줄입니다:
if (IS_FWI2_CAPABLE(ha)) {
sense_data += rsp_info_len; par_sense_len -= rsp_info_len; }
rsp_info_len은 대상의 FCP 응답(sf.rsp_data_len)에서 직접 가져온 32비트 값인 반면, par_sense_len은 IOCB 데이터 영역 크기(24xx는 28바이트, 29xx는 60바이트)입니다. hostile하거나 버그가 있는 대상이 par_sense_len보다 큰 rsp_info_len을 보고하면 부호 없는 뺄셈에서 오버플로우(underflow)가 발생하여 거대한 값으로 변하고 sense_data가 범위를 벗어나 전진합니다.
오버플로우된 par_sense_len은 qla2x00_handle_sense() 함수 내의 제한 조건을 무력화시킵니다:
if (sense_len > par_sense_len) sense_len = par_sense_len; memcpy(cp->sense_buffer, sense_data, sense_len);
따라서 memcpy는 범위를 벗어난 sense_data 포인터로부터 최대 SCSI_SENSE_BUFFERSIZE 바이트를 읽어서 인접한 응답 링(heap 메모리)을 명령어의 sense 버퍼로 누출시킵니다.
par_sense_len이 오버플로우되지 않고 sense_data가 IOCB 데이터 영역 내에 유지되도록 뺄셈 전에 rsp_info_len을 par_sense_len으로 제한합니다. 이 수정은 comp_status switch 앞에 위치하여 qla2x00_handle_sense() 호출 지점 둘 다를 커버합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.