Vulnerabilidad en Linux (CVE-2026-23199)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
14/02/2026
Última modificación:
18/02/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
procfs: evitar la obtención del ID de compilación mientras se mantiene el bloqueo VMA<br />
<br />
Corregir PROCMAP_QUERY para obtener el ID de compilación opcional solo después de liberar mmap_lock o el bloqueo por VMA, el que se haya utilizado para bloquear el VMA en cuestión, para evitar el interbloqueo informado por syzbot:<br />
<br />
-&gt; #1 (&amp;mm-&gt;mmap_lock){++++}-{4:4}:<br />
__might_fault+0xed/0x170<br />
_copy_to_iter+0x118/0x1720<br />
copy_page_to_iter+0x12d/0x1e0<br />
filemap_read+0x720/0x10a0<br />
blkdev_read_iter+0x2b5/0x4e0<br />
vfs_read+0x7f4/0xae0<br />
ksys_read+0x12a/0x250<br />
do_syscall_64+0xcb/0xf80<br />
entry_SYSCALL_64_after_hwframe+0x77/0x7f<br />
<br />
-&gt; #0 (&amp;sb-&gt;s_type-&gt;i_mutex_key#8){++++}-{4:4}:<br />
__lock_acquire+0x1509/0x26d0<br />
lock_acquire+0x185/0x340<br />
down_read+0x98/0x490<br />
blkdev_read_iter+0x2a7/0x4e0<br />
__kernel_read+0x39a/0xa90<br />
freader_fetch+0x1d5/0xa80<br />
__build_id_parse.isra.0+0xea/0x6a0<br />
do_procmap_query+0xd75/0x1050<br />
procfs_procmap_ioctl+0x7a/0xb0<br />
__x64_sys_ioctl+0x18e/0x210<br />
do_syscall_64+0xcb/0xf80<br />
entry_SYSCALL_64_after_hwframe+0x77/0x7f<br />
<br />
otra información que podría ayudarnos a depurar esto:<br />
<br />
Posible escenario de bloqueo inseguro:<br />
<br />
CPU0 CPU1<br />
---- ----<br />
rlock(&amp;mm-&gt;mmap_lock);<br />
lock(&amp;sb-&gt;s_type-&gt;i_mutex_key#8);<br />
lock(&amp;mm-&gt;mmap_lock);<br />
rlock(&amp;sb-&gt;s_type-&gt;i_mutex_key#8);<br />
<br />
* INTERBLOQUEO *<br />
<br />
Esto parece exacerbarse (ya que no habíamos visto estos informes de syzbot antes de eso) por el reciente:<br />
<br />
777a8560fd29 ("lib/buildid: use __kernel_read() for sleepable context")<br />
<br />
Para que esto sea seguro, necesitamos tomar el recuento de referencias del archivo mientras el VMA aún está bloqueado, pero aparte de eso, todo es bastante sencillo. La API interna build_id_parse() asume que se pasa el VMA, pero solo necesita la referencia de archivo subyacente, así que solo hay que añadir otra variante build_id_parse_file() que espera que el archivo se pase directamente.<br />
<br />
[akpm@linux-foundation.org: corregir kerneldoc]



