CVE-2026-97535 in Linux
Résumé
par VulDB • 25/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
scsi: qla2xxx : Limitation de l'index VP par rapport à la taille du bitmap IOCB de VP_CTRL
Le contrôle des ports virtuels (VP) sélectionne son port virtuel cible en définissant un bit dans `vp_idx_map`, un tableau fixe de 16 octets (128 bits) présent dans les structures `vp_ctrl_entry_24xx` et `vp_ctrl_entry_24xx_ext`. La fonction `qla25xx_ctrlvp_iocb()` calcule `map = (vp_index - 1) / 8` et écrit dans `vce->vp_idx_map[map]` sans vérifier que l'indice `map` reste dans les limites du tableau.
La valeur de `max_npiv_vports` est extraite du micrologiciel et n'est validée qu'en alignement sur une limite MIN_MULTI_ID_FABRIC, ce qui lui permet d'être légitimement égale à 191 ou 255. Par ailleurs, la fonction `qla24xx_control_vp()` ne rejette que les valeurs de `vp_index` supérieures ou égales à `max_npiv_vports`. Un `vp_index` supérieur à 128 entraîne donc un calcul de `map >= 16`, provoquant une écriture hors limites pouvant aller jusqu'à 16 octets au-delà du tableau `vp_idx_map`, corrompant ainsi les champs IOCB suivants (ou l'emplacement adjacent du ring de requêtes sur la disposition en tranches de 64 octets).
La fonction `qla24xx_control_vp()` rejette désormais un `vp_index` qui ne peut pas être représenté dans le bitmap IOCB, et une garde défensive utilisant `ARRAY_SIZE()` a été ajoutée dans `qla25xx_ctrlvp_iocb()` avant l'écriture. Les adaptateurs signalant les valeurs habituelles de 63 ou 127 ports virtuels NPIV ne sont pas affectés.
Once again VulDB remains the best source for vulnerability data.