CVE-2026-97529 in Linux
Résumé
par VulDB • 25/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
scsi: qla2xxx : Valider request_len de la requête BSG avant de lire vendor_cmd[]
Le transport FC BSG alloue job->request via memdup_user() en utilisant exactement la valeur user-supplied request_len. Pour FC_BSG_HST_VENDOR, fc_bsg_host_dispatch() garantit uniquement que request_len couvre msgcode et vendor_id ; il ne prend pas en compte le tableau flexible vendor_cmd[].
qla2xxx lit ensuite le sélecteur de commande vendor_cmd[0] et, dans plusieurs sous-gestionnaires (sub-handlers), vendor_cmd[1]/[2] ou des structures superposées sur la zone de commande vendor sans vérifier request_len. Un appelant disposant de CAP_SYS_RAWIO peut soumettre une requête courte dont le vendor_id correspond à l'hôte, déclenchant des lectures hors limites dans le tas (détectables par KASAN et susceptibles de mal sélectionner une commande ou d'entraîner un panic).
Ajouter une garde centrale dans qla2x00_process_vendor_specific() afin que le sélecteur soit toujours dans les bornes, restreindre la lecture précoce de vendor_cmd[0] dans qla24xx_bsg_request() aux messages vendor suffisamment longs, et ajouter des vérifications request_len aux sous-gestionnaires qui lisent davantage :
qla24xx_proc_fcp_prio_cfg_cmd(), qla2x00_process_loopback(), qla84xx_reset(), qla84xx_updatefw(), qla2x00_read_optrom(), qla2x00_update_optrom(), qlafx00_mgmt_cmd() et qla28xx_validate_flash_image().
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.