CVE-2025-71069 in Linuxinformación

Resumen

por VulDB • 2026-05-15

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

f2fs: invalidar la caché de dentry al fallar la creación de whiteout

F2FS puede montar sistemas de ficheros con valores de profundidad de directorio corruptos que se ajustan en tiempo de ejecución a MAX_DIR_HASH_DEPTH. Cuando se realizan operaciones RENAME_WHITEOUT en dichos directorios, f2fs_rename realiza modificaciones en el directorio (actualizando la entrada de destino y eliminando la entrada de origen) antes de intentar añadir la entrada whiteout mediante f2fs_add_link.

Si f2fs_add_link falla debido a la estructura de directorio corrupta, la función devuelve un error a VFS, pero las modificaciones parciales del directorio ya se han comprometido en disco. VFS asume que toda la operación de renombrado ha fallado y no actualiza la caché de dentry, dejando asignaciones obsoletas (stale).

En la ruta de error, VFS no llama a d_move() para actualizar la caché de dentry. Esto hace que new_dentry siga apuntando al antiguo inode (new_inode) que ya ha visto decrementado su i_nlink a cero. La caché obsoleta provoca que las operaciones posteriores referencien incorrectamente el inode liberado.

Esto hace que las operaciones posteriores utilicen información de dentry en caché que ya no coincide con el estado en disco. Cuando un segundo renombrado apunta a la misma entrada, VFS intenta decrementar i_nlink en el inode obsoleto, que puede ya tener i_nlink=0, lo que desencadena un WARNING en drop_nlink().

Secuencia de ejemplo: 1. Primer renombrado (RENAME_WHITEOUT): file2 → file1 - f2fs actualiza la entrada file1 en disco (apunta al inode 8) - f2fs elimina la entrada file2 en disco - f2fs_add_link(whiteout) falla (directorio corrupto) - Devuelve error a VFS - VFS no llama a d_move() debido al error - La caché de VFS aún tiene: file1 → inode 7 (¡obsoleto!) - inode 7 tiene i_nlink=0 (ya decrementado)

2. Segundo renombrado: file3 → file1 - VFS utiliza la caché obsoleta: file1 → inode 7 - Intenta drop_nlink en inode 7 (i_nlink ya es 0) - WARNING en drop_nlink()

Solucione esto invalidando explícitamente old_dentry y new_dentry cuando f2fs_add_link falle durante la creación de whiteout. Esto obliga a VFS a actualizar desde disco en operaciones posteriores, garantizando la consistencia de la caché incluso cuando el renombrado tiene éxito parcialmente.

Reproductor (Reproducer): 1. Monte una imagen F2FS con i_current_depth corrupto 2. renameat2(file2, file1, RENAME_WHITEOUT) 3. renameat2(file3, file1, 0) 4. El sistema desencadena un WARNING en drop_nlink()

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2026-01-13

Divulgación

2026-01-13

Moderación

aceptado

Artículo

VDB-340630

CPE

listo

EPSS

0.00202

KEV

no

Actividades

muy bajo

Fuentes

Want to know what is going to be exploited?

We predict KEV entries!