In the Linux kernel, the following vulnerability has been resolved:
mm: fix NULL pointer dereference in allocpagesbulk_noprof
We triggered a NULL pointer dereference for ac.preferredzoneref->zone in allocpagesbulknoprof() when the task is migrated between cpusets.
When cpuset is enabled, in prepareallocpages(), ac->nodemask may be ¤t->memsallowed. when firstzoneszonelist() is called to find preferredzoneref, 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 allocpagesbulknoprof(), foreachzonezonelistnodemask() finds a allowable zone and calls zonelistnodeidx(ac.preferredzoneref), leading to NULL pointer dereference.
_allocpagesnoprof() fixes this issue by checking NULL pointer in commit ea57485af8f4 ("mm, pagealloc: fix check for NULL preferredzone") and commit df76cee6bbeb ("mm, pagealloc: remove redundant checks from alloc fastpath").
To fix it, check NULL pointer for preferred_zoneref->zone.
[
    {
        "digest": {
            "function_hash": "221424307331301349925703256659226663285",
            "length": 2238.0
        },
        "target": {
            "function": "__alloc_pages_bulk",
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Function",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d0f16cec79774c3132df006cf771eddd89d08f58",
        "id": "CVE-2024-53113-3f8ed325"
    },
    {
        "digest": {
            "function_hash": "227179517927576085351743538583636492197",
            "length": 2225.0
        },
        "target": {
            "function": "__alloc_pages_bulk",
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Function",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@903d896448c2e50e8652aaba529a30d4d1eaa0e5",
        "id": "CVE-2024-53113-48c983f2"
    },
    {
        "digest": {
            "function_hash": "330232787915485554055118900934232749138",
            "length": 2410.0
        },
        "target": {
            "function": "alloc_pages_bulk_noprof",
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Function",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8ce41b0f9d77cca074df25afd39b86e2ee3aa68e",
        "id": "CVE-2024-53113-83365c05"
    },
    {
        "digest": {
            "function_hash": "221424307331301349925703256659226663285",
            "length": 2238.0
        },
        "target": {
            "function": "__alloc_pages_bulk",
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Function",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6addb2d9501ec866d7b3a3b4e665307c437e9be2",
        "id": "CVE-2024-53113-9ca64563"
    },
    {
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "190198254116091054937629193130893194670",
                "196693981739829730126209350543495826209",
                "137439483991859152567424942418317045886",
                "91804392957823674448253713228233838293"
            ]
        },
        "target": {
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Line",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@31502374627ba9ec3e710dbd0bb00457cc6d2c19",
        "id": "CVE-2024-53113-ad3d3d3e"
    },
    {
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "190198254116091054937629193130893194670",
                "196693981739829730126209350543495826209",
                "137439483991859152567424942418317045886",
                "91804392957823674448253713228233838293"
            ]
        },
        "target": {
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Line",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8ce41b0f9d77cca074df25afd39b86e2ee3aa68e",
        "id": "CVE-2024-53113-ae559e8b"
    },
    {
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "190198254116091054937629193130893194670",
                "196693981739829730126209350543495826209",
                "137439483991859152567424942418317045886",
                "91804392957823674448253713228233838293"
            ]
        },
        "target": {
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Line",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@903d896448c2e50e8652aaba529a30d4d1eaa0e5",
        "id": "CVE-2024-53113-babb32ee"
    },
    {
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "190198254116091054937629193130893194670",
                "196693981739829730126209350543495826209",
                "137439483991859152567424942418317045886",
                "91804392957823674448253713228233838293"
            ]
        },
        "target": {
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Line",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d0f16cec79774c3132df006cf771eddd89d08f58",
        "id": "CVE-2024-53113-c4a00b11"
    },
    {
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "190198254116091054937629193130893194670",
                "196693981739829730126209350543495826209",
                "137439483991859152567424942418317045886",
                "91804392957823674448253713228233838293"
            ]
        },
        "target": {
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Line",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6addb2d9501ec866d7b3a3b4e665307c437e9be2",
        "id": "CVE-2024-53113-d3e97570"
    },
    {
        "digest": {
            "function_hash": "221424307331301349925703256659226663285",
            "length": 2238.0
        },
        "target": {
            "function": "alloc_pages_bulk_noprof",
            "file": "mm/page_alloc.c"
        },
        "signature_type": "Function",
        "deprecated": false,
        "signature_version": "v1",
        "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@31502374627ba9ec3e710dbd0bb00457cc6d2c19",
        "id": "CVE-2024-53113-d646558f"
    }
]