CVE-2026-97529 in Linux
Resumen
por VulDB • 2026-09-25
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
scsi: qla2xxx: Validar request_len en las solicitudes BSG antes de leer vendor_cmd[]
El transporte FC BSG asigna job->request mediante memdup_user() utilizando exactamente el valor user-supplied request_len. Para FC_BSG_HST_VENDOR, fc_bsg_host_dispatch() solo garantiza que request_len cubra msgcode y vendor_id; no tiene en cuenta la flexible array de vendor_cmd[].
Posteriormente, qla2xxx lee el selector del comando vendor_cmd[0] y, en varios sub-handlers, lee vendor_cmd[1]/[2] o estructuras superpuestas sobre el área del comando vendor sin verificar request_len. Un llamador que posea CAP_SYS_RAWIO puede enviar una solicitud corta cuyo vendor_id coincida con el host, lo que desencadena lecturas heap out-of-bounds (detectables por KASAN y capaces de seleccionar incorrectamente un comando o provocar un panic).
Se añade una protección central en qla2x00_process_vendor_specific() para asegurar que el selector esté siempre dentro de los límites, se restringe la lectura temprana de vendor_cmd[0] en qla24xx_bsg_request() a mensajes vendor suficientemente largos y se añaden comprobaciones de request_len a los sub-handlers que leen más datos:
qla24xx_proc_fcp_prio_cfg_cmd(), qla2x00_process_loopback(), qla84xx_reset(), qla84xx_updatefw(), qla2x00_read_optrom(), qla2x00_update_optrom(), qlafx00_mgmt_cmd() y qla28xx_validate_flash_image().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.