CVE-2025-21709

In the Linux kernel, the following vulnerability has been resolved: kernel: be more careful about dup_mmap() failures and uprobe registering If a memory allocation fails during dup_mmap(), the maple tree can be left in an unsafe state for other iterators besides the exit path. All the locks are dropped before the exit_mmap() call (in mm/mmap.c), but the incomplete mm_struct can be reached through (at least) the rmap finding the vmas which have a pointer back to the mm_struct. Up to this point, there have been no issues with being able to find an mm_struct that was only partially initialised. Syzbot was able to make the incomplete mm_struct fail with recent forking changes, so it has been proven unsafe to use the mm_struct that hasn't been initialised, as referenced in the link below. Although 8ac662f5da19f ("fork: avoid inappropriate uprobe access to invalid mm") fixed the uprobe access, it does not completely remove the race. This patch sets the MMF_OOM_SKIP to avoid the iteration of the vmas on the oom side (even though this is extremely unlikely to be selected as an oom victim in the race window), and sets MMF_UNSTABLE to avoid other potential users from using a partially initialised mm_struct. When registering vmas for uprobe, skip the vmas in an mm that is marked unstable. Modifying a vma in an unstable mm may cause issues if the mm isn't fully initialised.
Configurations

Configuration 1 (hide)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

23 Oct 2025, 17:45

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: kernel: tenga más cuidado con los fallos de dup_mmap() y el registro de uprobe Si una asignación de memoria falla durante dup_mmap(), el árbol de maple puede quedar en un estado inseguro para otros iteradores además de la ruta de salida. Todos los bloqueos se eliminan antes de la llamada a exit_mmap() (en mm/mmap.c), pero se puede llegar al mm_struct incompleto a través de (al menos) el rmap que encuentra los vmas que tienen un puntero de vuelta al mm_struct. Hasta este punto, no ha habido problemas para poder encontrar un mm_struct que solo se haya inicializado parcialmente. Syzbot pudo hacer que el mm_struct incompleto fallara con los cambios de bifurcación recientes, por lo que se ha demostrado que no es seguro usar el mm_struct que no se ha inicializado, como se hace referencia en el enlace a continuación. Aunque 8ac662f5da19f ("fork: avoid inappropriate uprobe access to invalid mm") solucionó el acceso a uprobe, no elimina por completo la carrera. Este parche establece MMF_OOM_SKIP para evitar la iteración de las vmas en el lado oom (aunque es extremadamente improbable que se seleccione como víctima de oom en la ventana de carrera), y establece MMF_UNSTABLE para evitar que otros usuarios potenciales utilicen una mm_struct parcialmente inicializada. Al registrar vmas para uprobe, omite las vmas en un mm que esté marcado como inestable. Modificar una vma en un mm inestable puede causar problemas si el mm no está completamente inicializado.
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE NVD-CWE-noinfo
First Time Linux
Linux linux Kernel
References () https://git.kernel.org/stable/c/64c37e134b120fb462fb4a80694bfb8e7be77b14 - () https://git.kernel.org/stable/c/64c37e134b120fb462fb4a80694bfb8e7be77b14 - Patch
References () https://git.kernel.org/stable/c/da139948aeda677ac09cc0e7d837f8a314de7d55 - () https://git.kernel.org/stable/c/da139948aeda677ac09cc0e7d837f8a314de7d55 - Patch

27 Feb 2025, 02:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-02-27 02:15

Updated : 2025-10-23 17:45


NVD link : CVE-2025-21709

Mitre link : CVE-2025-21709

CVE.ORG link : CVE-2025-21709


JSON object : View

Products Affected

linux

  • linux_kernel