CVE-2022-48815

In the Linux kernel, the following vulnerability has been resolved: net: dsa: bcm_sf2: don't use devres for mdiobus As explained in commits: 74b6d7d13307 ("net: dsa: realtek: register the MDIO bus under devres") 5135e96a3dd2 ("net: dsa: don't allocate the slave_mii_bus using devres") mdiobus_free() will panic when called from devm_mdiobus_free() <- devres_release_all() <- __device_release_driver(), and that mdiobus was not previously unregistered. The Starfighter 2 is a platform device, so the initial set of constraints that I thought would cause this (I2C or SPI buses which call ->remove on ->shutdown) do not apply. But there is one more which applies here. If the DSA master itself is on a bus that calls ->remove from ->shutdown (like dpaa2-eth, which is on the fsl-mc bus), there is a device link between the switch and the DSA master, and device_links_unbind_consumers() will unbind the bcm_sf2 switch driver on shutdown. So the same treatment must be applied to all DSA switch drivers, which is: either use devres for both the mdiobus allocation and registration, or don't use devres at all. The bcm_sf2 driver has the code structure in place for orderly mdiobus removal, so just replace devm_mdiobus_alloc() with the non-devres variant, and add manual free where necessary, to ensure that we don't let devres free a still-registered bus.
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:5.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:*

History

06 Oct 2025, 17:05

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/08e1a3554e99a1a5bd2835907381e2383ee85cae - () https://git.kernel.org/stable/c/08e1a3554e99a1a5bd2835907381e2383ee85cae - Patch
References () https://git.kernel.org/stable/c/08f1a20822349004bb9cc1b153ecb516e9f2889d - () https://git.kernel.org/stable/c/08f1a20822349004bb9cc1b153ecb516e9f2889d - Patch
References () https://git.kernel.org/stable/c/2770b795294ed312375c11ef1d0b810499c66b83 - () https://git.kernel.org/stable/c/2770b795294ed312375c11ef1d0b810499c66b83 - Patch
References () https://git.kernel.org/stable/c/caabb5f64f5c32fceed93356bb688ef1ec6c5783 - () https://git.kernel.org/stable/c/caabb5f64f5c32fceed93356bb688ef1ec6c5783 - Patch
CWE NVD-CWE-noinfo
CPE cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:*
First Time Linux linux Kernel
Linux
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5

21 Nov 2024, 07:34

Type Values Removed Values Added
References () https://git.kernel.org/stable/c/08e1a3554e99a1a5bd2835907381e2383ee85cae - () https://git.kernel.org/stable/c/08e1a3554e99a1a5bd2835907381e2383ee85cae -
References () https://git.kernel.org/stable/c/08f1a20822349004bb9cc1b153ecb516e9f2889d - () https://git.kernel.org/stable/c/08f1a20822349004bb9cc1b153ecb516e9f2889d -
References () https://git.kernel.org/stable/c/2770b795294ed312375c11ef1d0b810499c66b83 - () https://git.kernel.org/stable/c/2770b795294ed312375c11ef1d0b810499c66b83 -
References () https://git.kernel.org/stable/c/caabb5f64f5c32fceed93356bb688ef1ec6c5783 - () https://git.kernel.org/stable/c/caabb5f64f5c32fceed93356bb688ef1ec6c5783 -
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: dsa: bcm_sf2: no use devres para mdiobus Como se explica en los commits: 74b6d7d13307 ("net: dsa: realtek: registre el bus MDIO en devres") 5135e96a3dd2 (" net: dsa: no asigne el esclavo_mii_bus usando devres") mdiobus_free() entrará en pánico cuando se llame desde devm_mdiobus_free() &lt;- devres_release_all() &lt;- __device_release_driver(), y ese mdiobus no fue anulado previamente. El Starfighter 2 es un dispositivo de plataforma, por lo que el conjunto inicial de restricciones que pensé que causarían esto (buses I2C o SPI que llaman -&gt;eliminar activado -&gt;apagar) no se aplican. Pero hay algo más que se aplica aquí. Si el maestro DSA está en un bus que llama -&gt;remove from -&gt;shutdown (como dpaa2-eth, que está en el bus fsl-mc), hay un enlace de dispositivo entre el conmutador y el maestro DSA, y device_links_unbind_consumers( ) desvinculará el controlador del conmutador bcm_sf2 al apagar. Por lo tanto, se debe aplicar el mismo tratamiento a todos los controladores de conmutador DSA, que es: usar devres tanto para la asignación como para el registro de mdiobus, o no usar devres en absoluto. El controlador bcm_sf2 tiene la estructura de código implementada para la eliminación ordenada de mdiobus, así que simplemente reemplace devm_mdiobus_alloc() con la variante que no es devres y agregue manual free cuando sea necesario, para garantizar que no permitamos que devres libere un bus aún registrado.

16 Jul 2024, 12:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-16 12:15

Updated : 2025-10-06 17:05


NVD link : CVE-2022-48815

Mitre link : CVE-2022-48815

CVE.ORG link : CVE-2022-48815


JSON object : View

Products Affected

linux

  • linux_kernel