CVE-2024-43840 bpf, arm64: Fix trampoline for BPF_TRAMP_F_CALL_ORIG

High 7.8 Published Updated

A flaw in the Linux kernel BPF trampoline on ARM64 can cause a kernel crash due to invalid address handling, leading to denial of service.

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-43840?

CVE-2024-43840 is a high-severity vulnerability in Linux kernel, published on 17 Aug 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:

bpf, arm64: Fix trampoline for BPF_TRAMP_F_CALL_ORIG

When BPF_TRAMP_F_CALL_ORIG is set, the trampoline calls __bpf_tramp_enter() and __bpf_tramp_exit() functions, passing them the struct bpf_tramp_image *im pointer as an argument in R0.

The trampoline generation code uses emit_addr_mov_i64() to emit instructions for moving the bpf_tramp_image address into R0, but emit_addr_mov_i64() assumes the address to be in the vmalloc() space and uses only 48 bits. Because bpf_tramp_image is allocated using kzalloc(), its address can use more than 48-bits, in this case the trampoline will pass an invalid address to __bpf_tramp_enter/exit() causing a kernel crash.

Fix this by using emit_a64_mov_i64() in place of emit_addr_mov_i64() as it can work with addresses that are greater than 48-bits.

Which versions are affected by CVE-2024-43840?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-43840?

Apply the vendor's patch.

Is CVE-2024-43840 being exploited?

There is no known exploitation of CVE-2024-43840 in the wild and no public exploit code.

All Linux kernel vulnerabilities

Sources

Also known as AZL-51859, BELL-CVE-2024-43840, DEBIAN-CVE-2024-43840, GHSA-c6m8-29qv-7wq9, ROOT-OS-DEBIAN-12-CVE-2024-43840, UBUNTU-CVE-2024-43840.

Is CVE-2024-43840 in your software?

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

Check your SBOMs for free