Vulnerabilidad en Linux (CVE-2026-23322)
Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416
Utilización después de liberación
Fecha de publicación:
25/03/2026
Última modificación:
23/04/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
ipmi: Soluciona el uso después de liberación y la corrupción de lista en error del remitente<br />
<br />
El análisis de Breno:<br />
<br />
Cuando el remitente SMI devuelve un error, smi_work() entrega una respuesta de error pero luego salta de nuevo para reiniciar sin limpiar correctamente:<br />
<br />
1. intf-&gt;curr_msg no se borra, por lo que no se extrae ningún mensaje nuevo<br />
2. newmsg todavía apunta al mensaje, haciendo que sender() sea llamado de nuevo con el mismo mensaje<br />
3. Si sender() falla de nuevo, deliver_err_response() es llamado con el mismo recv_msg que ya estaba en cola para entrega<br />
<br />
Esto causa corrupción de list_add (&#39;list_add doble adición&#39;) porque el recv_msg es añadido a la lista user_msgs dos veces. Posteriormente, la lista corrupta lleva a un uso después de liberación cuando la memoria es liberada y reutilizada, y eventualmente a una desreferencia de puntero NULL al acceder a recv_msg-&gt;done.<br />
<br />
La secuencia defectuosa:<br />
<br />
sender() falla<br />
-&gt; deliver_err_response(recv_msg) // recv_msg en cola para entrega<br />
-&gt; goto restart // ¡curr_msg no borrado!<br />
sender() falla de nuevo (¡mismo mensaje!)<br />
-&gt; deliver_err_response(recv_msg) // intenta poner en cola el mismo recv_msg<br />
-&gt; CORRUPCIÓN DE LISTA<br />
<br />
Soluciona esto liberando el mensaje y estableciéndolo a NULL en un error de envío. Además, siempre libera el newmsg en un error de envío, de lo contrario, se producirá una fuga.
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:*:*:*:*:*:*:*:* | 6.18.1 (incluyendo) | 6.18.17 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 6.19.7 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:6.18:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



