CVE-2026-93202 in Linuxinformation

Résumé

par VulDB • 18/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

i3c: master : Correction de l'acquisition récursive des verrous lors de l'enregistrement des périphériques

La fonction `i3c_master_register_new_i3c_devs()` enregistre les nouveaux périphériques découverts tout en maintenant le verrou `i3c_bus_normaluse_lock()`, qui est un `down_read()`. La fonction `device_register()` peut immédiatement sonder (prober) le périphérique, et les callbacks de sondage invoquent généralement des assistants I3C qui acquèrent à nouveau `i3c_bus_normaluse_lock()`, ce qui conduit à une acquisition récursive du même rwsem. Les rwsems ne prennent pas en charge l'acquisition récursive de verrous en lecture (read locking) et peuvent entraîner un blocage mortel (deadlock) lorsqu'un writer est en attente. Voir la section « Recursive read locks » dans Documentation/locking/lockdep-design.rst.

Par exemple, avec Intel LPSS I3C, LOCKDEP génère un avertissement tel que : # echo intel-lpss-i3c.0 > /sys/bus/platform/drivers/mipi-i3c-hci/unbind # echo intel-lpss-i3c.0 > /sys/bus/platform/drivers/mipi-i3c-hci/bind AVERTISSEMENT: possible acquisition récursive de verrous détectée kworker/5:1/94 essaie d'acquérir le verrou : ffff88811c810d78 (&i3cbus->lock){++++}-{4:4}, à : i3c_device_match_id+0x45/0x370
mais la tâche détient déjà ce verrou : ffff88811c810d78 (&i3cbus->lock){++++}-{4:4}, à : i3c_master_reg_work_fn+0x21/0x5f0

Cette correction est apportée en séparant la création du périphérique de son enregistrement. On remplit `desc->dev` sous le verrou de maintenance, on collecte les périphériques qui doivent encore être enregistrés dans une liste locale, puis on libère le verrou avant d'appeler `device_register()`. Enfin, on réacquiert le verrou et on nettoie tout périphérique ayant échoué lors de l'enregistrement.

On utilise le verrou de maintenance plutôt que le verrou d'utilisation normale (normal-use lock) lors de l'ajout des objets de périphérique. Un verrou de maintenance en écriture empêche les lecteurs d'observer un `desc->dev` partiellement initialisé pendant la population initiale du périphérique, ou d'assister à la disparition de `desc->dev` si l'enregistrement échoue.

La liste locale nécessite un nœud de liste ; on ajoute donc un membre de type nœud de liste (`list node`) à la structure `i3c_device`.

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Réserver

17/09/2026

Divulgation

18/09/2026

Modérer

accepté

Entrée

VDB-407079

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Do you need the next level of professionalism?

Upgrade your account now!