Vulnerabilidad en Linux (CVE-2025-71074)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-362
Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
13/01/2026
Última modificación:
25/03/2026
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:<br />
<br />
functionfs: corregir las condiciones de carrera de apertura/eliminación<br />
<br />
ffs_epfile_open() puede entrar en condición de carrera con la eliminación, lo que resulta en que file-&gt;private_data apunte a un objeto liberado.<br />
<br />
Existe un recuento total de archivos abiertos en functionfs (tanto ep0 como los dinámicos) y cuando llega a cero, los archivos dinámicos se eliminan. Desafortunadamente, esa eliminación puede ocurrir mientras otro hilo está en ffs_epfile_open(), pero aún no ha incrementado el recuento. En ese caso, la apertura tendrá éxito, dejándonos con UAF en cualquier read() o write() posterior.<br />
<br />
La causa raíz es que ffs-&gt;opened se utiliza incorrectamente; atomic_dec_and_test() frente a atomic_add_return() no es una buena idea cuando el objeto permanece visible todo el tiempo.<br />
<br />
Para desenredar eso<br />
* serializar los abridores en ffs-&gt;mutex (tanto para ep0 como para archivos dinámicos)<br />
* hacer que los dinámicos usen atomic_inc_not_zero() y fallen si teníamos cero -&gt;opened; en ese caso, el archivo que estamos abriendo está condenado.<br />
* hacer que los inodos de los archivos dinámicos se marquen al eliminarse (desde la devolución de llamada de simple_recursive_removal()) - borrar -&gt;i_private allí.<br />
* hacer que la apertura de los dinámicos verifique que no hayan sido ya eliminados, junto con la comprobación de que el estado es FFS_ACTIVE.
Impacto
Puntuación base 3.x
4.70
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.35.1 (incluyendo) | 6.19 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:2.6.35:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página



