CVE-2024-39477 mm/hugetlb: do not call vma_add_reservation upon ENOMEM
A null pointer dereference in the Linux kernel's hugetlb subsystem can cause a system crash when memory allocation fails during reservation handling.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2024-39477?
CVE-2024-39477 is a high-severity vulnerability in Linux kernel, published on 5 Jul 2024. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
In the Linux kernel, the following vulnerability has been resolved:
mm/hugetlb: do not call vma_add_reservation upon ENOMEM
sysbot reported a splat [1] on __unmap_hugepage_range(). This is because vma_needs_reservation() can return -ENOMEM if allocate_file_region_entries() fails to allocate the file_region struct for the reservation.
Check for that and do not call vma_add_reservation() if that is the case, otherwise region_abort() and region_del() will see that we do not have any file_regions.
If we detect that vma_needs_reservation() returned -ENOMEM, we clear the hugetlb_restore_reserve flag as if this reservation was still consumed, so free_huge_folio() will not increment the resv count.
[1] https://lore.kernel.org/linux-mm/[email protected]/T/#ma5983bc1ab18a54910da83416b3f89f3c7ee43aa
Weakness: CWE-770
Which versions are affected by CVE-2024-39477?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2024-39477?
Apply the vendor's patch.
Is CVE-2024-39477 being exploited?
There is no known exploitation of CVE-2024-39477 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as BELL-CVE-2024-39477, DEBIAN-CVE-2024-39477, GHSA-pqcx-8276-jv6c, UBUNTU-CVE-2024-39477.