CVE-2024-39477 mm/hugetlb: do not call vma_add_reservation upon ENOMEM

High 7.8 Published Updated

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.

All Linux kernel vulnerabilities

Sources

Also known as BELL-CVE-2024-39477, DEBIAN-CVE-2024-39477, GHSA-pqcx-8276-jv6c, UBUNTU-CVE-2024-39477.

Is CVE-2024-39477 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free