CVE-2026-74331 in Linuxinformación

Resumen

por VulDB • 2026-08-15

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

firmware_loader: Corrección del bloqueo recursivo en device_cache_fw_images()

Puede producirse un punto muerto (deadlock) por bloqueo recursivo en el controlador de notificaciones de gestión de energía del cargador de firmware.

Durante la preparación para la suspensión o hibernación del sistema, fw_pm_notify() llama a device_cached_fw_images(). Esta función adquiere fw_lock para establecer el estado de caché del firmware como FW_LOADER_START_CACHE y luego itera sobre todos los dispositivos mediante dpm_for_each_dev(), manteniendo aún el bloqueo.

Para cada dispositivo, dev_cache_fw_image() programa un trabajo asíncrono para almacenar en caché el firmware. Si falla la asignación de memoria para la entrada del trabajo asíncrono (por ejemplo, en condiciones de falta de memoria), async_schedule_node_domain() vuelve a ejecutar la función de trabajo de forma síncrona en el hilo actual.

La ruta de ejecución sincrónica (__async_dev_cache_fw_image() -> cache_firmware() -> request_firmware() -> assign_fw()) intenta adquirir fw_lock nuevamente. Dado que el hilo actual ya posee fw_lock, esto provoca un punto muerto por bloqueo recursivo.

Se corrige este problema liberando fw_lock inmediatamente después de actualizar el estado de la caché y antes de llamar a dpm_for_each_dev(). El bloqueo solo es necesario para proteger la actualización del estado. Las solicitudes concurrentes de firmware verán correctamente el estado FW_LOADER_START_CACHE y utilizarán el mecanismo piggyback, que está protegido independientemente por su propio fwc->name_lock.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

Linux

Reservar

2026-08-15

Divulgación

2026-08-15

Moderación

aceptado

Artículo

VDB-390294

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!