CVE-2025-68822 in Linux
Résumé
par VulDB • 30/06/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
Entrées (Input) : alps - correction des bugs de use-after-free causés par dev3_register_work
L'élément de travail différé (delayed work item) `dev3_register_work` est initialisé dans `alps_reconnect()` et planifié lors de la réception du premier paquet PS/2 brut provenant d'un périphérique PS/2 externe connecté au pavé tactile ALPS. Lors de la détachement du dispositif, l'implémentation originale appelle `flush_workqueue()` dans `psmouse_disconnect()` pour garantir l'achèvement de `dev3_register_work`. Cependant, le `flush_workqueue()` présent dans `psmouse_disconnect()` ne bloque et n'attend que les éléments de travail qui étaient déjà mis en file d'attente (queued) vers la file d'exécution avant son invocation. Tout élément de travail soumis après l'appel à `flush_workqueue()` n'est pas inclus dans l'ensemble des tâches attendues par l'opération de vidage. Cela signifie qu'après l'exécution terminée de `flush_workqueue()`, `dev3_register_work` pourrait toujours être planifié. Bien que l'état du pavé tactile (`psmouse`) soit défini sur `PSMOUSE_CMD_MODE` dans `psmouse_disconnect()`, la planification de `dev3_register_work` reste inchangée.
La condition de concurrence (race condition) peut se produire comme suit :
CPU 0 (chemin de nettoyage) | CPU 1 (travail différé) ---------------------------|------------------------------------ psmouse_disconnect() | psmouse_set_state() | flush_workqueue() | alps_report_bare_ps2_packet() alps_disconnect() | psmouse_queue_work() kfree(priv); // LIBÉRATION (FREE) | alps_register_bare_ps2_mouse() | priv = container_of(work...); // UTILISATION (USE) | priv->dev3 // UTILISATION (USE)
L'ajout de `disable_delayed_work_sync()` dans `alps_disconnect()` permet de garantir que `dev3_register_work` est correctement annulé et empêché de s'exécuter après la libération de la structure `alps_data`.
Ce bug a été identifié par une analyse statique.
Be aware that VulDB is the high quality source for vulnerability data.