CVE-2024-53113

In the Linux kernel, the following vulnerability has been resolved: mm: fix NULL pointer dereference in alloc_pages_bulk_noprof We triggered a NULL pointer dereference for ac.preferred_zoneref->zone in alloc_pages_bulk_noprof() when the task is migrated between cpusets. When cpuset is enabled, in prepare_alloc_pages(), ac->nodemask may be &current->mems_allowed. when first_zones_zonelist() is called to find preferred_zoneref, the ac->nodemask may be modified concurrently if the task is migrated between different cpusets. Assuming we have 2 NUMA Node, when traversing Node1 in ac->zonelist, the nodemask is 2, and when traversing Node2 in ac->zonelist, the nodemask is 1. As a result, the ac->preferred_zoneref points to NULL zone. In alloc_pages_bulk_noprof(), for_each_zone_zonelist_nodemask() finds a allowable zone and calls zonelist_node_idx(ac.preferred_zoneref), leading to NULL pointer dereference. __alloc_pages_noprof() fixes this issue by checking NULL pointer in commit ea57485af8f4 ("mm, page_alloc: fix check for NULL preferred_zone") and commit df76cee6bbeb ("mm, page_alloc: remove redundant checks from alloc fastpath"). To fix it, check NULL pointer for preferred_zoneref->zone.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc7:*:*:*:*:*:*

History

14 Dec 2024, 21:15

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/903d896448c2e50e8652aaba529a30d4d1eaa0e5 -

11 Dec 2024, 20:29

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:*
CWE CWE-476
First Time Linux linux Kernel
Linux
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: mm: corregir la desreferencia de puntero NULL en alloc_pages_bulk_noprof Activamos una desreferencia de puntero NULL para ac.preferred_zoneref->zone en alloc_pages_bulk_noprof() cuando la tarea se migra entre conjuntos de CPU. Cuando se habilita el conjunto de CPU, en prepare_alloc_pages(), ac->nodemask puede ser &current->mems_allowed. Cuando se llama a first_zones_zonelist() para encontrar preference_zoneref, ac->nodemask puede modificarse simultáneamente si la tarea se migra entre diferentes conjuntos de CPU. Suponiendo que tenemos 2 nodos NUMA, al recorrer el nodo 1 en ac->zonelist, la máscara de nodo es 2, y al recorrer el nodo 2 en ac->zonelist, la máscara de nodo es 1. Como resultado, ac->preferred_zoneref apunta a la zona NULL. En alloc_pages_bulk_noprof(), for_each_zone_zonelist_nodemask() encuentra una zona permitida y llama a zonelist_node_idx(ac.preferred_zoneref), lo que genera una desreferencia del puntero NULL. __alloc_pages_noprof() corrige este problema al verificar el puntero NULL en el commit ea57485af8f4 ("mm, page_alloc: corregir la verificación para la zona preferida NULL") y el commit df76cee6bbeb ("mm, page_alloc: eliminar las verificaciones redundantes de la ruta rápida de asignación"). Para solucionarlo, verifique el puntero NULL para la zona preferida->zone.
References () https://git.kernel.org/stable/c/31502374627ba9ec3e710dbd0bb00457cc6d2c19 - () https://git.kernel.org/stable/c/31502374627ba9ec3e710dbd0bb00457cc6d2c19 - Patch
References () https://git.kernel.org/stable/c/6addb2d9501ec866d7b3a3b4e665307c437e9be2 - () https://git.kernel.org/stable/c/6addb2d9501ec866d7b3a3b4e665307c437e9be2 - Patch
References () https://git.kernel.org/stable/c/8ce41b0f9d77cca074df25afd39b86e2ee3aa68e - () https://git.kernel.org/stable/c/8ce41b0f9d77cca074df25afd39b86e2ee3aa68e - Patch
References () https://git.kernel.org/stable/c/d0f16cec79774c3132df006cf771eddd89d08f58 - () https://git.kernel.org/stable/c/d0f16cec79774c3132df006cf771eddd89d08f58 - Patch

02 Dec 2024, 14:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-12-02 14:15

Updated : 2024-12-14 21:15


NVD link : CVE-2024-53113

Mitre link : CVE-2024-53113

CVE.ORG link : CVE-2024-53113


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-476

NULL Pointer Dereference