Vulnerabilidad en kernel de Linux (CVE-2025-37843)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
09/05/2025
Última modificación:
17/11/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: PCI: pciehp: Evitar comprobaciones innecesarias de reemplazo de dispositivo. La desconexión en caliente de puertos PCI hotplug anidados sufre una condición de ejecución persistente que puede provocar un bloqueo: un puerto hotplug principal adquiere pci_lock_rescan_remove() y espera a que pciehp se desvincule de un puerto hotplug secundario. Mientras tanto, ese puerto hotplug secundario también intenta adquirir pci_lock_rescan_remove() para eliminar sus propios secundarios. El bloqueo solo ocurre si el principal adquiere pci_lock_rescan_remove() primero, no si el secundario lo adquiere primero. A lo largo de los años se han propuesto y descartado varias soluciones alternativas para evitar el problema, por ejemplo: https://lore.kernel.org/r/4c882e25194ba8282b78fe963fec8faae7cf23eb.1529173804.git.lukas@wunner.de/ Se está trabajando en una solución adecuada, pero requiere más tiempo, ya que no es trivial y es necesariamente intrusiva. La reciente confirmación 9d573d19547b ("PCI: pciehp: Detectar reemplazo de dispositivo durante la suspensión del sistema") provoca una mayor frecuencia del bloqueo al eliminar más de un dispositivo Thunderbolt durante la suspensión del sistema. Esta confirmación buscaba detectar el reemplazo del dispositivo, pero también se activó al eliminarlo. Es imposible diferenciar con precisión entre reemplazo y eliminación, ya que pci_get_dsn() devuelve 0 tanto si el dispositivo se eliminó como si se reemplazó por uno sin número de serie del dispositivo. Evite la ocurrencia más frecuente del interbloqueo comprobando si el puerto hotplug se eliminó en caliente. De ser así, no tiene sentido comprobar si su dispositivo secundario se reemplazó. Esto funciona porque la llamada de retorno ->resume_noirq() se invoca de arriba a abajo para toda la jerarquía: un puerto hotplug principal que detecta el reemplazo (o la eliminación) de un dispositivo marca todos los secundarios como eliminados mediante pci_dev_set_disconnected() y un puerto hotplug secundario puede entonces detectar con fiabilidad su eliminación.
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.11 (incluyendo) | 6.12.24 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.13.12 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.14 (incluyendo) | 6.14.3 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



