CVE-2024-53113

mm: fix NULL pointer dereference in alloc_pages_bulk_noprof

published December 2, 2024

CVSS
—
EPSS
0%
Percentile
15.3
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00249 · 15.3th percentile
Published
2024-12-02T13:44Z
EPSS history
Timeline
  • 02 DEC 13:44Z
    mm: fix NULL pointer dereference in alloc_pages_bulk_noprof
    cvelistv5