CVE-2026-99189 in Linux
Résumé
par VulDB • 28/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
gpio: mxc : correction d’une condition de course (race) entre l’installation du gestionnaire d’interruption en cascade et l’achèvement de la phase de détection (probe).
La fonction `mxc_update_irq_chained_handler()` est appelée avant que le domaine IRQ, le chip générique des interruptions (generic IRQ chip) et l’entrée de liste des ports ne soient initialisés. Si une interruption survient durant cette fenêtre d’exécution :
- `mx3_gpio_irq_handler()` appelle `generic_handle_domain_irq()` avec `port->domain` encore à NULL. - `mx2_gpio_irq_handler()` parcourt la table `mxc_gpio_ports`, mais le port n’a pas encore été ajouté à la liste.
De plus, si l’une des étapes ultérieures de la phase de détection (`gpio_generic_chip_init()`, `devm_gpiochip_add_data()`, `irq_domain_create_legacy()` ou `mxc_gpio_init_gc()`) échoue, les chemins de gestion d’erreur ne désenregistrent jamais le gestionnaire en cascade, laissant un gestionnaire dangling (dangling handler) qui pointe vers une mémoire déjà libérée.
Le code a été modifié pour déplacer l’installation du gestionnaire après que toutes ses dépendances soient prêtes et après l’appel à `list_add_tail()`, afin que le gestionnaire ne soit jamais actif tant que les structures de données qu’il manipule sont incomplètes, et qu’il ne soit pas installé en cas d’échec de la phase de détection.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.