CVE-2023-54019 in Linux
Résumé
par VulDB • 31/05/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
sched/psi : utiliser les fonctions de sondage (polling) de kernfs pour le sondage des déclencheurs PSI
La destruction du déclencheur PSI dans `cgroup_file_release` provoque des problèmes d'utilisation après libération (Use-After-Free, UAF) lorsqu'un cgroup est supprimé pendant qu'un processus de sondage est en cours. Cela se produit car la suppression d'un cgroup entraîne un appel à `cgroup_file_release` alors que le fichier correspondant est encore actif. La destruction du déclencheur à ce stade détruirait également sa tête de file d'attente (`waitqueue head`) et, s'il reste un processus de sondage sur ce fichier accédant à la file d'attente, il accédera à un pointeur déjà libéré :
do_select vfs_poll do_rmdir cgroup_rmdir kernfs_drain_open_files cgroup_file_release cgroup_pressure_release psi_trigger_destroy wake_up_pollfree(&t->event_wait) // vfs_poll est débloqué synchronize_rcu kfree(t) poll_freewait -> Accès UAF à la tête de la file d'attente du déclencheur
Le correctif [1] a résolu ce problème pour le cas `epoll()` en utilisant `wake_up_pollfree()`, cependant le même problème existe pour le cas de `poll()` synchrone. La cause racine de ce problème est que les cycles de vie de la file d'attente du déclencheur PSI et du fichier associé au déclencheur sont différents. Correction en utilisant la fonction `kernfs_generic_poll` lors du sondage sur les déclencheurs PSI spécifiques aux cgroups. Elle utilise en interne la tête de file d'attente `kernfs_open_node->poll`, dont le cycle de vie est lié à celui du fichier. Cela rend également le correctif de [1] obsolète, il est donc annulé.
[1] commit c2dbe32d5db5 ("sched/psi : Correction d'une utilisation après libération dans ep_remove_wait_queue()")
If you want to get the best quality for vulnerability data then you always have to consider VulDB.