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

Vulnerabilidad en Linux (CVE-2026-23267)

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
18/03/2026
Última modificación:
19/03/2026

Descripción

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br /> <br /> f2fs: corrige el problema de inconsistencia del flag IS_CHECKPOINTED causado por escrituras concurrentes de commit atómico y checkpoint<br /> <br /> Durante las pruebas SPO, al montar F2FS, se devolvió un error -EINVAL desde<br /> f2fs_recover_inode_page. El problema ocurrió bajo el siguiente escenario<br /> <br /> Hilo A Hilo B<br /> f2fs_ioc_commit_atomic_write<br /> - f2fs_do_sync_file // atómico = true<br /> - f2fs_fsync_node_pages<br /> : last_folio = inode folio<br /> : schedule before folio_lock(last_folio) f2fs_write_checkpoint<br /> - block_operations// writeback last_folio<br /> - schedule before f2fs_flush_nat_entries<br /> : set_fsync_mark(last_folio, 1)<br /> : set_dentry_mark(last_folio, 1)<br /> : folio_mark_dirty(last_folio)<br /> - __write_node_folio(last_folio)<br /> : f2fs_down_read(&amp;amp;sbi-&amp;gt;node_write)//bloquea<br /> - f2fs_flush_nat_entries<br /> : {struct nat_entry}-&amp;gt;flag |= BIT(IS_CHECKPOINTED)<br /> - unblock_operations<br /> : f2fs_up_write(&amp;amp;sbi-&amp;gt;node_write)<br /> f2fs_write_checkpoint//retorna<br /> : f2fs_do_write_node_page()<br /> f2fs_ioc_commit_atomic_write//retorna<br /> SPO<br /> <br /> El Hilo A llama a f2fs_need_dentry_mark(sbi, ino), y el last_folio ya ha<br /> sido escrito una vez. Sin embargo, el {struct nat_entry}-&amp;gt;flag no tenía<br /> el IS_CHECKPOINTED establecido, causando que set_dentry_mark(last_folio, 1) y<br /> se escriba last_folio de nuevo después de que el Hilo B termine f2fs_write_checkpoint.<br /> <br /> Después de SPO y el reinicio, se detectó que {struct node_info}-&amp;gt;blk_addr<br /> no era NULL_ADDR porque el Hilo B escribió exitosamente el checkpoint.<br /> <br /> Este problema solo ocurre en escenarios de escritura atómica. Para operaciones<br /> fsync de archivos regulares, el folio debe estar sucio. Si<br /> block_operations-&amp;gt;f2fs_sync_node_pages envía exitosamente la escritura del folio,<br /> esta ruta no se ejecutará. De lo contrario, f2fs_write_checkpoint deberá esperar<br /> a que se complete el envío de la escritura del folio, ya que<br /> sbi-&amp;gt;nr_pages[F2FS_DIRTY_NODES] &amp;gt; 0. Por lo tanto, la situación en la que<br /> f2fs_need_dentry_mark verifica que el {struct nat_entry}-&amp;gt;flag sin el flag<br /> IS_CHECKPOINTED, pero la escritura del folio ya ha sido enviada, no ocurrirá.<br /> <br /> Por lo tanto, para fsync de archivos atómicos, sbi-&amp;gt;node_write debe adquirirse<br /> a través de __write_node_folio para asegurar que el flag IS_CHECKPOINTED<br /> indique correctamente que la escritura del checkpoint ha sido completada.

Impacto