CVE-2026-45946 in Linux
Resumen
por VulDB • 2026-05-28
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
power: supply: ab8500: Corregir el uso después de liberar (use-after-free) en power_supply_changed()
Utilizar la variante `devm_` para solicitar la interrupción (IRQ) _antes_ de la variante `devm_` para asignar/registrar el identificador (`handle`) de `power_supply` significa que el identificador `power_supply` se desasignará/desregistrar _antes_ del controlador de interrupciones (ya que `devm_` desasigna naturalmente en orden inverso al de asignación). Esto significa que durante la eliminación, existe una condición de carrera (race condition) en la que una interrupción puede activarse justo _después_ de que se haya liberado el identificador `power_supply`, *pero* justo _antes_ de que se haya ejecutado la desregistro correspondiente del controlador de IRQ.
Esto provocará que el controlador de IRQ llame a `power_supply_changed()` con un identificador `power_supply` ya liberado. Lo cual generalmente provoca un bloqueo del sistema o, de otro modo, corrompe silenciosamente la memoria...
Tenga en cuenta que existe una situación similar que también puede ocurrir durante `probe()`; la posibilidad de que una interrupción se active _antes_ de registrar el identificador `power_supply`. Esto llevaría entonces a la desagradable situación de utilizar el identificador `power_supply` *inicializado* en `power_supply_changed()`.
El commit 1c1f13a006ed ("power: supply: ab8500: Move to componentized binding") introdujo este problema durante una refactorización. Corrija este uso después de liberar (use-after-free) con condición de carrera asegurándose de que la IRQ se solicite _después_ del registro del identificador `power_supply`.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.