Vulnerabilidad en kernel de Linux (CVE-2022-49501)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416
Utilización después de liberación
Fecha de publicación:
26/02/2025
Última modificación:
24/03/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: usbnet: Ejecutar unregister_netdev() antes unbind() de nuevo El commit 2c9d6c2b871d ("usbnet: run unbind() antes unregister_netdev()") buscaba corregir un uso después de liberación (use-after-free) al desconectar los adaptadores USB Ethernet. Resulta que es necesaria una corrección diferente para abordar el problema: https://lore.kernel.org/netdev/18b3541e5372bc9b9fc733d422f4e698c089077c.1650177997.git.lukas@wunner.de/ Por lo tanto, el commit no era necesario. El commit hizo que la vinculación y desvinculación de USB Ethernet fuera asimétrica: antes, usbnet_probe() primero invocaba la devolución de llamada -&amp;gtbind() y luego register_netdev(). usbnet_disconnect() reflejó eso al invocar primero unregister_netdev() y luego -&amp;gtunbind(). Desde el commit, el orden en usbnet_disconnect() se invierte y ya no refleja usbnet_probe(). Una consecuencia es que un PHY desconectado (y detenido) en -&amp;gtunbind() se detiene luego una vez más por unregister_netdev() ya que cierra el netdev antes de anular el registro. Eso requiere una contorsión en -&amp;gtstop() porque el PHY solo se puede detener si no se ha desconectado ya. Revertir el commit permite hacer que la llamada a phy_stop() sea incondicional en -&amp;gtstop().<br />
Impacto
Puntuación base 3.x
7.80
Gravedad 3.x
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.15.46 (excluyendo) | |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 5.17.14 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.18 (incluyendo) | 5.18.3 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página