Vulnerabilidad en Linux (CVE-2026-23148)
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 />
nvmet: corregir condición de carrera en nvmet_bio_done() que lleva a una desreferencia de puntero NULL<br />
<br />
Existe una condición de carrera en nvmet_bio_done() que puede causar una desreferencia de puntero NULL en blk_cgroup_bio_start():<br />
<br />
1. nvmet_bio_done() es llamada cuando un bio se completa<br />
2. nvmet_req_complete() es llamada, lo que invoca req-&gt;ops-&gt;queue_response(req)<br />
3. La devolución de llamada queue_response puede volver a encolar y volver a enviar la misma solicitud<br />
4. El reenvío reutiliza el mismo inline_bio de nvmet_req<br />
5. Mientras tanto, nvmet_req_bio_put() (llamada después de nvmet_req_complete) invoca bio_uninit() para inline_bio, lo que establece bio-&gt;bi_blkg en NULL<br />
6. El bio reenviado entra en submit_bio_noacct_nocheck()<br />
7. blk_cgroup_bio_start() desreferencia bio-&gt;bi_blkg, causando un fallo:<br />
<br />
ERROR: desreferencia de puntero NULL del kernel, dirección: 0000000000000028<br />
#PF: acceso de lectura de supervisor en modo kernel<br />
RIP: 0010:blk_cgroup_bio_start+0x10/0xd0<br />
Rastro de Llamada:<br />
submit_bio_noacct_nocheck+0x44/0x250<br />
nvmet_bdev_execute_rw+0x254/0x370 [nvmet]<br />
process_one_work+0x193/0x3c0<br />
worker_thread+0x281/0x3a0<br />
<br />
Corregir esto reordenando nvmet_bio_done() para llamar a nvmet_req_bio_put() ANTES de nvmet_req_complete(). Esto asegura que el bio se limpie antes de que la solicitud pueda ser reenviada, previniendo la condición de carrera.



