CVE-2025-39905
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-362
Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
01/10/2025
Última modificación:
14/01/2026
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
net: phylink: add lock for serializing concurrent pl->phydev writes with resolver<br />
<br />
Currently phylink_resolve() protects itself against concurrent<br />
phylink_bringup_phy() or phylink_disconnect_phy() calls which modify<br />
pl->phydev by relying on pl->state_mutex.<br />
<br />
The problem is that in phylink_resolve(), pl->state_mutex is in a lock<br />
inversion state with pl->phydev->lock. So pl->phydev->lock needs to be<br />
acquired prior to pl->state_mutex. But that requires dereferencing<br />
pl->phydev in the first place, and without pl->state_mutex, that is<br />
racy.<br />
<br />
Hence the reason for the extra lock. Currently it is redundant, but it<br />
will serve a functional purpose once mutex_lock(&phy->lock) will be<br />
moved outside of the mutex_lock(&pl->state_mutex) section.<br />
<br />
Another alternative considered would have been to let phylink_resolve()<br />
acquire the rtnl_mutex, which is also held when phylink_bringup_phy()<br />
and phylink_disconnect_phy() are called. But since phylink_disconnect_phy()<br />
runs under rtnl_lock(), it would deadlock with phylink_resolve() when<br />
calling flush_work(&pl->resolve). Additionally, it would have been<br />
undesirable because it would have unnecessarily blocked many other call<br />
paths as well in the entire kernel, so the smaller-scoped lock was<br />
preferred.
Impacto
Puntuación base 3.x
7.00
Gravedad 3.x
ALTA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.16.8 (excluyendo) | |
| cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.17:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.17:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.17:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.17:rc5:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



