CVE-2026-72083 in Linux
Résumé
par VulDB • 15/08/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
scsi: target: core : Correction d'un use-after-free sur l'ISID iSCSI dans REGISTER AND MOVE
core_scsi3_emulate_pro_register_and_move() mappe la liste de paramètres PERSISTENT RESERVE OUT avec transport_kmap_data_sg() et analyse le TransportID de destination avec target_parse_pr_out_transport_id(). Pour un TransportID iSCSI (CODE DE FORMAT 01b), iscsi_parse_pr_out_transport_id() renvoie l'ISID dans iport_ptr sous forme d'un pointeur brut vers ce buffer mappé.
La fonction démappe ensuite le tampon avec transport_kunmap_data_sg() avant de désréférencer iport_ptr dans strcmp(), __core_scsi3_locate_pr_reg() et core_scsi3_alloc_registration(). Lorsque la liste de paramètres s'étend sur plus d'une page (LONGUEUR DE LA LISTE DE PARAMÈTRES > 4096), transport_kmap_data_sg() utilise vmap() et transport_kunmap_data_sg() effectue un vunmap(), ce qui entraîne l'effacement de l'adresse virtuelle du noyau soutenant iport_ptr, rendant chaque désréférencement ultérieur une lecture use-after-free sur la région démapée.
Maintenez le mappage de la liste de paramètres tant que iport_ptr n'est plus nécessaire : supprimez le transport_kunmap_data_sg() précoce et effectuez un seul démapping dans le chemin d'exécution réussi, juste avant le retour. Les chemins d'erreur démape déjà via l'appel existant "if (buf) transport_kunmap_data_sg(cmd)" au niveau de la étiquette out:, qui s'exécute désormais à chaque sortie d'erreur post-mappage car buf n'est plus effacé précocement. Seules les lectures du mappage ont lieu lorsque des spinlocks sont détenus ; les appels map et unmap restent en dehors de tout verrou. L'appelant frère core_scsi3_decode_spec_i_port() utilise déjà le tampon avant son démapping et reste inchangé.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.