CVE-2024-40917·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: memblock: make memblock_set_node() also warn about use of MAX_NUMNODES On an (old) x86 system with SRAT just covering space above 4Gb: ACPI: SRAT: Node 0 PXM 0 [mem 0x100000000-0xfffffffff] hotplug the commit referenced below leads to this NUMA configuration no longer being refused by a CONFIG_NUMA=y kernel (previously NUMA: nodes only cover 6144MB of your 8185MB e820 RAM. Not used. No NUMA configuration found Faking a node at [mem 0x0000000000000000-0x000000027fffffff] was seen in the log directly after the message quoted above), because of memblock_validate_numa_coverage() checking for NUMA_NO_NODE (only). This in turn led to memblock_alloc_range_nid()'s warning about MAX_NUMNODES triggering, followed by a NULL deref in memmap_init() when trying to access node 64's (NODE_SHIFT=6) node data. To compensate said change, make memblock_set_node() warn on and adjust a passed in value of MAX_NUMNODES, just like various other functions already do.
- Severity
- medium
- Software
- Kernel
- Fixed in
- 6.9.6
- Published
- 2024-07-12
Affected versions
From: 6.8
Until: 6.9.6
Fixed in: 6.9.6
How to fix this CVE
Update your Linux kernel to version 6.9.6 or later to resolve this NUMA node configuration vulnerability. The fix ensures that invalid node identifiers (MAX_NUMNODES) are properly detected and corrected in memory block allocation, preventing NULL pointer dereferences in systems with incomplete SRAT tables.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Run 'uname -r' to check the currently running kernel version; verify it is 6.9.6 or later
- Check /proc/cmdline to confirm NUMA is enabled: 'grep -i numa /proc/cmdline' should show numa=on or similar
- Examine system logs for 'memblock_alloc_range_nid' warnings: 'sudo dmesg | grep -i memblock' or 'sudo journalctl -k | grep memblock'
- Reboot the system after applying the kernel update and verify with 'uname -r' that the new version is active
FAQ
What is CVE-2024-40917?
This vulnerability occurs in the Linux kernel's memory block (memblock) allocation logic when systems have incomplete NUMA node configuration (e.g., SRAT tables covering only memory above 4GB). The bug allows invalid node identifiers to propagate through memory allocation, leading to NULL pointer dereferences during memory initialization.
Is CVE-2024-40917 being actively exploited?
No, this vulnerability is not listed on CISA's Known Exploited Vulnerabilities (KEV) catalog and no public exploits are currently available. The issue primarily affects NUMA-enabled systems with specific hardware configurations.
What versions of Kernel are affected by CVE-2024-40917?
Linux kernel versions 6.8 through 6.9.5 are vulnerable. The fix is included in kernel version 6.9.6 and later.
How do I check if my server is vulnerable to CVE-2024-40917?
Run 'uname -r' and compare the output to 6.9.6. If your version is 6.8.x or 6.9.0-6.9.5, your system is vulnerable. Additionally, check if NUMA is enabled with 'grep CONFIG_NUMA /boot/config-$(uname -r)' (should show CONFIG_NUMA=y).
Does Defensia detect CVE-2024-40917?
Yes — Defensia's CVE advisory scanner compares installed package versions against the NVD database. If Kernel is installed on a monitored server, CVE-2024-40917 will appear in your dashboard with remediation steps.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/22f742b8f738918f683198a18ec3c691acda14c4
- https://git.kernel.org/stable/c/4ddb7f966f3d06fcf1ba5ee298af6714b593584b
- https://git.kernel.org/stable/c/e0eec24e2e199873f43df99ec39773ad3af2bff7
- https://git.kernel.org/stable/c/22f742b8f738918f683198a18ec3c691acda14c4
- https://git.kernel.org/stable/c/e0eec24e2e199873f43df99ec39773ad3af2bff7
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2024-40917. Free for 1 server.
Get started free