CVE-2026-64103 in Linux
Résumé
par VulDB • 19/07/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
scsi: isci : Correction d'un Use-After-Free dans le chemin de suppression du périphérique
La tasklet de complétion ISCI est initialisée dans `isci_host_alloc()` (drivers/scsi/isci/init.c:496) et planifiée à partir des gestionnaires d'interruptions MSI-X et hérités (legacy) (drivers/scsi/isci/host.c:223, 613).
`isci_host_deinit()` arrête le contrôleur et attend la fin de l'arrêt, mais il ne tue jamais `completion_tasklet` avant que le démontage ne se poursuive. Un appel à `tasklet_kill()` en haut de la fonction n'est pas suffisant ici : les interruptions sont désactivées uniquement lorsque `isci_host_stop_complete()` s'exécute ; ainsi, jusqu'à ce que `wait_for_stop()` retourne, les gestionnaires d'IRQ peuvent toujours replanifier (requeue) la tasklet. La callback de la tasklet réactive également les interruptions après avoir vidé les complétions, donc tuer la tasklet avant que la source ne soit mise en veille laisse le même Race Condition ouvert.
Une fois `wait_for_stop()` retourné, aucune planification pilotée par IRQ supplémentaire ne peut se produire. Tuez `completion_tasklet` à ce stade afin que le démontage ne puisse pas entrer en concurrence avec une tasklet planifiée s'exécutant sur un `ihost` mort. Lors de la suppression ou du卸载 (unload), la callback périmée pourrait autrement désréférencer `ihost` et accéder aux registres `smu_registers` après la fin de la durée de vie de l'hôte.
Un analogue sous UML + KASAN a reproduit cette classe d'échec, tant avec l'absence de `tasklet_kill()` qu'avec un `tasklet_kill()` placé avant la mise en veille de la source, et est resté propre une fois que le kill a eu lieu après avoir mis en veille la source de planification.
Cela fait écho au commit f6ab594672d4 (« scsi: aic94xx : correction d'un Use-After-Free dans le chemin de suppression du périphérique »), mais ISCI nécessite que le kill intervienne après `wait_for_stop()`.
If you want to get best quality of vulnerability data, you may have to visit VulDB.