CVE-2024-35986

In the Linux kernel, the following vulnerability has been resolved: phy: ti: tusb1210: Resolve charger-det crash if charger psy is unregistered The power_supply frame-work is not really designed for there to be long living in kernel references to power_supply devices. Specifically unregistering a power_supply while some other code has a reference to it triggers a WARN in power_supply_unregister(): WARN_ON(atomic_dec_return(&psy->use_cnt)); Folllowed by the power_supply still getting removed and the backing data freed anyway, leaving the tusb1210 charger-detect code with a dangling reference, resulting in a crash the next time tusb1210_get_online() is called. Fix this by only holding the reference in tusb1210_get_online() freeing it at the end of the function. Note this still leaves a theoretical race window, but it avoids the issue when manually rmmod-ing the charger chip driver during development.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*

History

04 Apr 2025, 14:33

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.9:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.9:rc2:*:*:*:*:*:*
CWE CWE-416
First Time Linux linux Kernel
Linux
References () https://git.kernel.org/stable/c/25b3498485ac281e5851700e33b97f12c9533fd8 - () https://git.kernel.org/stable/c/25b3498485ac281e5851700e33b97f12c9533fd8 - Patch
References () https://git.kernel.org/stable/c/73224a5d2180066c7fe05b4656647601ba08d588 - () https://git.kernel.org/stable/c/73224a5d2180066c7fe05b4656647601ba08d588 - Patch
References () https://git.kernel.org/stable/c/9827caa5105fb16d1fae2e75c8d0e4662014b3ca - () https://git.kernel.org/stable/c/9827caa5105fb16d1fae2e75c8d0e4662014b3ca - Patch
References () https://git.kernel.org/stable/c/bf6e4ee5c43690e4c5a8a057bbcd4ff986bed052 - () https://git.kernel.org/stable/c/bf6e4ee5c43690e4c5a8a057bbcd4ff986bed052 - Patch

21 Nov 2024, 09:21

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/25b3498485ac281e5851700e33b97f12c9533fd8 - () https://git.kernel.org/stable/c/25b3498485ac281e5851700e33b97f12c9533fd8 -
References () https://git.kernel.org/stable/c/73224a5d2180066c7fe05b4656647601ba08d588 - () https://git.kernel.org/stable/c/73224a5d2180066c7fe05b4656647601ba08d588 -
References () https://git.kernel.org/stable/c/9827caa5105fb16d1fae2e75c8d0e4662014b3ca - () https://git.kernel.org/stable/c/9827caa5105fb16d1fae2e75c8d0e4662014b3ca -
References () https://git.kernel.org/stable/c/bf6e4ee5c43690e4c5a8a057bbcd4ff986bed052 - () https://git.kernel.org/stable/c/bf6e4ee5c43690e4c5a8a057bbcd4ff986bed052 -

29 Oct 2024, 20:35

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: phy: ti: tusb1210: resolver el bloqueo del cargador-det si el cargador psy no está registrado. El marco power_supply no está realmente manipulado para que haya referencias duraderas en el kernel a los dispositivos power_supply. Específicamente, cancelar el registro de un power_supply mientras algún otro código tiene una referencia a él activa una ADVERTENCIA en power_supply_unregister(): WARN_ON(atomic_dec_return(&psy->use_cnt)); Seguido por power_supply aún se elimina y los datos de respaldo se liberan de todos modos, dejando el código de detección del cargador tusb1210 con una referencia colgante, lo que resulta en un bloqueo la próxima vez que se llama a tusb1210_get_online(). Solucione este problema manteniendo únicamente la referencia en tusb1210_get_online() liberándola al final de la función. Tenga en cuenta que esto aún deja una ventana de ejecución teórica, pero evita el problema al modificar manualmente el controlador del chip del cargador durante el desarrollo.

20 May 2024, 10:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-20 10:15

Updated : 2025-04-04 14:33


NVD link : CVE-2024-35986

Mitre link : CVE-2024-35986

CVE.ORG link : CVE-2024-35986


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free