Vulnerabilidad en Linux (CVE-2023-54321)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476
Desreferencia a puntero nulo (NULL)
Fecha de publicación:
30/12/2025
Última modificación:
26/02/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
núcleo del controlador: corrige una potencial desreferencia de puntero nulo en device_add()<br />
<br />
Recibí el siguiente informe de desreferencia de puntero nulo mientras realizaba una prueba de inyección de fallos:<br />
<br />
ERROR: desreferencia de puntero NULL del kernel, dirección: 0000000000000058<br />
CPU: 2 PID: 278 Comm: 37-i2c-ds2482 Tainted: G B W N 6.1.0-rc3+<br />
RIP: 0010:klist_put+0x2d/0xd0<br />
Traza de llamadas:<br />
<br />
klist_remove+0xf1/0x1c0<br />
device_release_driver_internal+0x196/0x210<br />
bus_remove_device+0x1bd/0x240<br />
device_add+0xd3d/0x1100<br />
w1_add_master_device+0x476/0x490 [wire]<br />
ds2482_probe+0x303/0x3e0 [ds2482]<br />
<br />
Así es como ocurrió:<br />
<br />
w1_alloc_dev()<br />
// El dev-&gt;driver se establece en w1_master_driver.<br />
memcpy(&amp;dev-&gt;dev, device, sizeof(struct device));<br />
device_add()<br />
bus_add_device()<br />
dpm_sysfs_add() // Falla, llama a bus_remove_device.<br />
<br />
// ruta de error<br />
bus_remove_device()<br />
// El dev-&gt;driver no es nulo, pero el controlador no está enlazado.<br />
__device_release_driver()<br />
klist_remove(&amp;dev-&gt;p-&gt;knode_driver) &lt;-- Causa una desreferencia de puntero nulo.<br />
<br />
// ruta normal<br />
bus_probe_device() // Aún no se ha llamado.<br />
device_bind_driver()<br />
<br />
Si dev-&gt;driver está establecido, en la ruta de error después de llamar a bus_add_device() en device_add(), se llama a bus_remove_device(), entonces el dispositivo será desvinculado del controlador. Pero device_bind_driver() aún no se ha llamado, por lo que causa una desreferencia de puntero nulo al acceder a &#39;knode_driver&#39;. Para solucionar esto, establece dev-&gt;driver en nulo en la ruta de error antes de llamar a bus_remove_device().
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:*:*:*:*:*:*:*:* | 2.6.26 (incluyendo) | 5.10.249 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.99 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.16 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.2.3 (excluyendo) |
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/17982304806c5c10924e73f7ca5556e0d7378452
- https://git.kernel.org/stable/c/2c59650d078b1b3f1ea50d5f8ee9fcc537dc02d3
- https://git.kernel.org/stable/c/7cf515bf9e8c2908dc170ecf2df117162a16c9c5
- https://git.kernel.org/stable/c/97aa8fb74bbe9aaf4ed5962a784f73b071bd16bf
- https://git.kernel.org/stable/c/f6837f34a34973ef6600c08195ed300e24e97317



