Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Linux (CVE-2026-46274)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416 Utilización después de liberación
Fecha de publicación:
08/06/2026
Última modificación:
23/07/2026

Descripción

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br /> <br /> io-wq: verificar que el predecesor esté hasheado en io_wq_remove_pending()<br /> <br /> io_wq_remove_pending() necesita corregir wq-&gt;hash_tail[] si el trabajo cancelado era la cola de su cubo hash. Al hacer esto, verifica si la entrada precedente en acct-&gt;work_list tiene el mismo valor hash, pero nunca verifica que el predecesor esté hasheado en absoluto. io_get_work_hash() es simplemente atomic_read(&amp;work-&gt;flags) &gt;&gt; IO_WQ_HASH_SHIFT, y los bits hash nunca se establecen para trabajos no hasheados, por lo que devuelve 0. Así, cuando un trabajo hasheado del cubo 0 es cancelado mientras que un trabajo no hasheado es su predecesor en la lista, la verificación pasa de forma espuria y un puntero al io_kiocb no hasheado se almacena en wq-&gt;hash_tail[0].<br /> <br /> Debido a que el trabajo no hasheado se desencola a través de la ruta rápida en io_get_next_work(), que nunca toca hash_tail[], el puntero obsoleto nunca se borra. Por lo tanto, después de que el io_kiocb no hasheado se completa y se libera de nuevo a req_cachep, wq-&gt;hash_tail[0] es un puntero colgante. El io_wq es por tarea (tctx-&gt;io_wq) y sobrevive a la apertura/cierre del anillo, por lo que el puntero colgante persiste durante la vida útil de la tarea; la siguiente encolación hasheada del cubo 0 lo desreferencia en io_wq_insert_work() y wq_list_add_after() escribe a través de memoria liberada.<br /> <br /> Añadir la verificación io_wq_is_hashed() faltante para que un predecesor no hasheado nunca herede una ranura hash_tail[].

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.8.6 (incluyendo) 5.9 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.9.1 (incluyendo) 6.6.141 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.12.91 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (incluyendo) 6.18.33 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 (incluyendo) 7.0.10 (excluyendo)
cpe:2.3:o:linux:linux_kernel:5.9:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.9:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.9:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.9:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.9:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.9:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.9:rc8:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:*