CVE-2024-43876

In the Linux kernel, the following vulnerability has been resolved: PCI: rcar: Demote WARN() to dev_warn_ratelimited() in rcar_pcie_wakeup() Avoid large backtrace, it is sufficient to warn the user that there has been a link problem. Either the link has failed and the system is in need of maintenance, or the link continues to work and user has been informed. The message from the warning can be looked up in the sources. This makes an actual link issue less verbose. First of all, this controller has a limitation in that the controller driver has to assist the hardware with transition to L1 link state by writing L1IATN to PMCTRL register, the L1 and L0 link state switching is not fully automatic on this controller. In case of an ASMedia ASM1062 PCIe SATA controller which does not support ASPM, on entry to suspend or during platform pm_test, the SATA controller enters D3hot state and the link enters L1 state. If the SATA controller wakes up before rcar_pcie_wakeup() was called and returns to D0, the link returns to L0 before the controller driver even started its transition to L1 link state. At this point, the SATA controller did send an PM_ENTER_L1 DLLP to the PCIe controller and the PCIe controller received it, and the PCIe controller did set PMSR PMEL1RX bit. Once rcar_pcie_wakeup() is called, if the link is already back in L0 state and PMEL1RX bit is set, the controller driver has no way to determine if it should perform the link transition to L1 state, or treat the link as if it is in L0 state. Currently the driver attempts to perform the transition to L1 link state unconditionally, which in this specific case fails with a PMSR L1FAEG poll timeout, however the link still works as it is already back in L0 state. Reduce this warning verbosity. In case the link is really broken, the rcar_pcie_config_access() would fail, otherwise it will succeed and any system with this controller and ASM1062 can suspend without generating a backtrace.
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:*:*:*:*:*:*:*:*

History

10 Oct 2025, 13:47

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
First Time Linux
Linux linux Kernel
CWE NVD-CWE-noinfo
References () https://git.kernel.org/stable/c/2ae4769332dfdb97f4b6f5dc9ac8f46d02aaa3df - () https://git.kernel.org/stable/c/2ae4769332dfdb97f4b6f5dc9ac8f46d02aaa3df - Patch
References () https://git.kernel.org/stable/c/3ff3bdde950f1840df4030726cef156758a244d7 - () https://git.kernel.org/stable/c/3ff3bdde950f1840df4030726cef156758a244d7 - Patch
References () https://git.kernel.org/stable/c/526a877c6273d4cd0d0aede84c1d620479764b1c - () https://git.kernel.org/stable/c/526a877c6273d4cd0d0aede84c1d620479764b1c - Patch
References () https://git.kernel.org/stable/c/c93637e6a4c4e1d0e85ef7efac78d066bbb24d96 - () https://git.kernel.org/stable/c/c93637e6a4c4e1d0e85ef7efac78d066bbb24d96 - Patch
Summary
  • (es) En el kernel de Linux se ha resuelto la siguiente vulnerabilidad: PCI: rcar: Degradar WARN() a dev_warn_ratelimited() en rcar_pcie_wakeup() Evitar un gran backtrace, basta con avisar al usuario que ha habido un problema de enlace. O el enlace falló y el sistema necesita mantenimiento, o el enlace continúa funcionando y el usuario ha sido informado. El mensaje de la advertencia se puede buscar en las fuentes. Esto hace que un problema de enlace real sea menos detallado. En primer lugar, este controlador tiene una limitación en el sentido de que el controlador del controlador tiene que ayudar al hardware con la transición al estado de enlace L1 escribiendo L1IATN en el registro PMCTRL; el cambio de estado de enlace L1 y L0 no es completamente automático en este controlador. En el caso de un controlador ASMedia ASM1062 PCIe SATA que no admite ASPM, al entrar a suspender o durante la plataforma pm_test, el controlador SATA ingresa al estado D3hot y el enlace ingresa al estado L1. Si el controlador SATA se activa antes de que se llamara a rcar_pcie_wakeup() y regresa a D0, el enlace regresa a L0 antes de que el controlador del controlador comenzara su transición al estado de enlace L1. En este punto, el controlador SATA envió un DLLP PM_ENTER_L1 al controlador PCIe y el controlador PCIe lo recibió, y el controlador PCIe configuró el bit PMSR PMEL1RX. Una vez que se llama a rcar_pcie_wakeup(), si el enlace ya está nuevamente en el estado L0 y el bit PMEL1RX está configurado, el controlador del controlador no tiene forma de determinar si debe realizar la transición del enlace al estado L1 o tratar el enlace como si estuviera en estado L0. Estado L0. Actualmente, el controlador intenta realizar la transición al estado del enlace L1 incondicionalmente, lo que en este caso específico falla con un tiempo de espera de sondeo PMSR L1FAEG; sin embargo, el enlace aún funciona porque ya está nuevamente en el estado L0. Reduzca la verbosidad de esta advertencia. En caso de que el enlace esté realmente roto, rcar_pcie_config_access() fallará; de lo contrario, tendrá éxito y cualquier sistema con este controlador y ASM1062 puede suspenderse sin generar un seguimiento.
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5

21 Aug 2024, 01:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-08-21 01:15

Updated : 2025-10-10 13:47


NVD link : CVE-2024-43876

Mitre link : CVE-2024-43876

CVE.ORG link : CVE-2024-43876


JSON object : View

Products Affected

linux

  • linux_kernel