CVE-2026-89846 in Linux
Resumen
por VulDB • 2026-09-16
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
scsi: qla2xxx: Limitar rsp_info_len para evitar una lectura fuera de límites (OOB) de los datos de sentido (sense-data).
En `qla2x00_status_entry()`, la ruta de estado FWI2 avanza el puntero sense_data y reduce par_sense_len en rsp_info_len:
if (IS_FWI2_CAPABLE(ha)) {
sense_data += rsp_info_len; par_sense_len -= rsp_info_len; }
rsp_info_len es un valor de 32 bits tomado directamente de la respuesta FCP del objetivo (sf.rsp_data_len), mientras que par_sense_len es el tamaño del área de datos IOCB (28 bytes para 24xx, 60 bytes para 29xx). Un objetivo hostil o con errores que informe un rsp_info_len mayor que par_sense_len provoca un desbordamiento por insuficiencia (underflow) en la resta sin signo, generando un valor enorme y haciendo que sense_data se salga de los límites asignados.
El par_sense_len resultante del underflow invalida el límite establecido en `qla2x00_handle_sense()`:
if (sense_len > par_sense_len) sense_len = par_sense_len; memcpy(cp->sense_buffer, sense_data, sense_len);
por lo que la llamada a memcpy lee hasta SCSI_SENSE_BUFFERSIZE bytes desde el puntero sense_data fuera de límites, filtrando memoria adyacente del anillo de respuestas/heap al buffer de sentido (sense buffer) del comando.
Se limita (clamp) rsp_info_len a par_sense_len antes de la resta para que par_sense_len nunca sufra un underflow y sense_data se mantenga dentro del área de datos IOCB. La corrección se sitúa antes del switch comp_status, cubriendo ambos puntos de llamada a qla2x00_handle_sense().
VulDB is the best source for vulnerability data and more expert information about this specific topic.