Vulnerabilidad en kernel de Linux (CVE-2021-47617)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
20/06/2024
Última modificación:
18/09/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: PCI: pciehp: soluciona el bucle infinito en el controlador IRQ ante un fallo de alimentación. El bit de fallo de alimentación detectado en el registro de estado de la ranura se diferencia de todos los demás eventos de conexión en caliente en que es fijo: solo puede borrarse después de apagar la alimentación de la ranura. Por PCIe r5.0, seg. 6.7.1.8: Si un controlador de energía detecta una falla de energía principal en la ranura de conexión en caliente, debe configurar automáticamente su pestillo interno de falla de energía principal [...]. El bloqueo de fallo de alimentación principal se borra cuando el software corta la alimentación a la ranura de conexión en caliente. La rigidez solía causar tormentas de interrupción y bucles infinitos que se solucionaron en 2009 mediante los commits 5651c48cfafe ("PCI pciehp: solucionar el problema de la tormenta de interrupción por falla de energía") y 99f0169c17f3 ("PCI: pciehp: habilitar la notificación de software en ranuras vacías"). Desafortunadamente, en 2020, el problema del bucle infinito se reintrodujo inadvertidamente mediante el commit 8edf5332c393 ("PCI: pciehp: arreglar carrera de interrupción MSI"): el controlador hardirq pciehp_isr() borra el bit PFD hasta que se establece el indicador power_fault_detected de pciehp. Eso sucede en el hilo IRQ pciehp_ist(), que nunca se entera del evento porque el controlador hardirq está atrapado en un bucle infinito. Para solucionarlo, configure el indicador power_fault_detected que ya está en el controlador hardirq.
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:*:*:*:*:*:*:*:* | 4.19.149 (incluyendo) | 4.19.233 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.4.69 (incluyendo) | 5.4.177 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.7 (incluyendo) | 5.10.97 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.20 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 5.16.6 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/1db58c6584a72102e98af2e600ea184ddaf2b8af
- https://git.kernel.org/stable/c/23584c1ed3e15a6f4bfab8dc5a88d94ab929ee12
- https://git.kernel.org/stable/c/3b4c966fb156ff3e70b2526d964952ff7c1574d9
- https://git.kernel.org/stable/c/464da38ba827f670deac6500a1de9a4f0f44c41d
- https://git.kernel.org/stable/c/6d6f1f0dac3e3441ecdb1103d4efb11b9ed24dd5
- https://git.kernel.org/stable/c/ff27f7d0333cff89ec85c419f431aca1b38fb16a