CVE-2026-74331 in Linux
Résumé
par VulDB • 15/08/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
firmware_loader : Correction d'un verrouillage récursif dans device_cache_fw_images()
Un blocage (deadlock) dû à un verrouillage récursif peut se produire dans le gestionnaire de notifications de gestion de l'alimentation du chargeur de micrologiciel.
Lors de la préparation de la mise en veille ou de l'hibernation du système, fw_pm_notify() appelle device_cache_fw_images(). Cette fonction acquiert fw_lock pour définir l'état du cache des micrologiciels sur FW_LOADER_START_CACHE, puis itère sur tous les appareils à l'aide de dpm_for_each_dev() tout en conservant le verrou.
Pour chaque appareil, dev_cache_fw_image() planifie un travail asynchrone afin de mettre en cache le micrologiciel. Si l'allocation de mémoire pour la structure du travail asynchrone échoue (par exemple dans des conditions d'épuisement de la mémoire), async_schedule_node_domain() revient à exécuter la fonction de travail de manière synchrone dans le thread actuel.
Le chemin d'exécution synchrone (__async_dev_cache_fw_image() -> cache_firmware() -> request_firmware() -> assign_fw()) tente d'acquérir fw_lock une nouvelle fois. Puisque le thread actuel détient déjà fw_lock, cela entraîne un blocage dû à un verrouillage récursif.
Cette correction consiste à libérer fw_lock immédiatement après la mise à jour de l'état du cache et avant d'appeler dpm_for_each_dev(). Le verrou n'est nécessaire que pour protéger la mise à jour de l'état. Les demandes de micrologiciel concurrentes verront correctement l'état FW_LOADER_START_CACHE et utiliseront le mécanisme de « piggyback », qui est protégé indépendamment par son propre fwc->name_lock.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.