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

Vulnerabilidad en kernel de Linux (CVE-2025-38141)

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

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: dm: fix dm_blk_report_zones Si dm_get_live_table() devolvía NULL, dm_put_live_table() nunca se llamaba. Además, es posible que md->zone_revalidate_map cambie al llamar a esta función. Solo léalo una vez, para que siempre usemos el mismo valor. De lo contrario, podríamos perder una llamada a dm_put_live_table(). Finalmente, mientras md->zone_revalidate_map está configurado y un proceso está llamando a blk_revalidate_disk_zones() para configurar los recursos de emulación de anexión de zona, es posible que otro proceso, quizás activado por blkdev_report_zones_ioctl(), llame a dm_blk_report_zones(). Si blk_revalidate_disk_zones() falla, estos recursos pueden liberarse mientras el otro proceso aún los está usando, causando un error de uso después de liberación. blk_revalidate_disk_zones() solo se llamará al configurar inicialmente los recursos de emulación de anexión de zona, como al configurar una tabla dm-crypt zonificada por primera vez. Los intercambios de tabla posteriores no establecerán md->zone_revalidate_map ni llamarán a blk_revalidate_disk_zones(). Sin embargo, debe llamarse utilizando la nueva tabla (referenciada por md->zone_revalidate_map) y los nuevos límites de cola mientras el dispositivo DM esté suspendido. dm_blk_report_zones() necesita distinguir entre una llamada a blk_revalidate_disk_zones(), que debe permitir el uso de md->zone_revalidate_map para acceder a esta tabla aún no activada, y todas las demás llamadas a dm_blk_report_zones(), que no deben permitirse mientras el dispositivo esté suspendido y no puedan usar md->zone_revalidate_map, ya que los recursos de la zona podrían ser liberados por el proceso que llama a blk_revalidate_disk_zones(). Para solucionar esto, se debe rastrear el proceso que establece md->zone_revalidate_map en dm_revalidate_zones() y permitir que solo ese proceso lo use en dm_blk_report_zones().

Impacto