CVE-2025-68356 in Linux
Resumen
por VulDB • 2026-05-16
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
gfs2: Evitar la recuperación de memoria recursiva
La función new_inode() devuelve un nuevo inode con inode->i_mapping->gfp_mask establecido en GFP_HIGHUSER_MOVABLE. Este valor incluye la bandera __GFP_FS, por lo que las asignaciones en ese espacio de direcciones pueden recursar hacia la recuperación de memoria del sistema de archivos. No queremos que esto ocurra porque puede consumir una cantidad significativa de memoria de pila (stack).
Peor aún es que también puede provocar un bloqueo mutuo (deadlock): por ejemplo, en varios lugares, se llama a gfs2_unstuff_dinode() dentro de transacciones del sistema de archivos. Esto llama a filemap_grab_folio(), que puede asignar un nuevo folio, lo cual puede desencadenar la recuperación de memoria. Si la recuperación de memoria recursa hacia el código del sistema de archivos e inicia otra transacción, se producirá un bloqueo mutuo.
Para solucionar este tipo de problemas, se evita que la recuperación de memoria recursione en el código del sistema de archivos asegurándose de que la gfp_mask de los espacios de direcciones de los inodes no incluya __GFP_FS.
Los espacios de direcciones "meta" y de grupo de recursos ya utilizaban GFP_NOFS como su gfp_mask (que no incluye __GFP_FS). Sin embargo, el valor predeterminado de GFP_HIGHUSER_MOVABLE es menos restrictivo que GFP_NOFS. Para evitar ser excesivamente limitante, se utiliza el valor predeterminado y solo se elimina la bandera __GFP_FS. No estoy seguro de si esto realmente marcará una diferencia, pero tampoco debería causar daños.
Este parche se basa vagamente en el commit ad22c7a043c2 ("xfs: prevenir desbordamientos de pila por asignación de caché de páginas").
Corrige xfstest generic/273.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.