Vulnerabilidad en kernel de Linux (CVE-2022-48813)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
16/07/2024
Última modificación:
03/10/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: dsa: felix: don't use devres for 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() <- devres_release_all() <- __device_release_driver(), y ese mdiobus no fue anulado previamente. El conmutador Felix VSC9959 es un dispositivo PCI, por lo que el conjunto inicial de restricciones que pensé que causarían esto (buses I2C o SPI que llaman ->eliminar activado ->apagar) no se aplican. Pero hay algo más que se aplica aquí. Si el maestro DSA está en un bus que llama ->remove from ->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 interruptor Felix al apagarlo. 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 Felix tiene la estructura de código implementada para la eliminación ordenada de mdiobus, así que simplemente reemplace devm_mdiobus_alloc_size() 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.
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:*:*:*:*:*:*:*:* | 5.9 (incluyendo) | 5.10.101 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.24 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 5.16.10 (excluyendo) |
| 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:*:*:*:*:*:* |
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/209bdb7ec6a28c7cdf580a0a98afbc9fc3b98932
- https://git.kernel.org/stable/c/8cda7577a0b4018572f31e0caadfabd305ea2786
- https://git.kernel.org/stable/c/95e5402f9430b3c7d885dd3ec4c8c02c17936923
- https://git.kernel.org/stable/c/9db6f056efd089e80d81c774c01b639adf30c097
- https://git.kernel.org/stable/c/209bdb7ec6a28c7cdf580a0a98afbc9fc3b98932
- https://git.kernel.org/stable/c/8cda7577a0b4018572f31e0caadfabd305ea2786
- https://git.kernel.org/stable/c/95e5402f9430b3c7d885dd3ec4c8c02c17936923
- https://git.kernel.org/stable/c/9db6f056efd089e80d81c774c01b639adf30c097



