CVE-2024-42063 bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode

Medium 5.5 Published Updated

A local attacker with BPF privileges can read uninitialized kernel stack memory via BPF map operations in interpreter mode, potentially leaking sensitive data.

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

CVE-2024-42063 is a medium-severity vulnerability in Linux kernel, published on 29 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:

bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode

syzbot reported uninit memory usages during map_{lookup,delete}_elem.

========== BUG: KMSAN: uninit-value in __dev_map_lookup_elem kernel/bpf/devmap.c:441 [inline] BUG: KMSAN: uninit-value in dev_map_lookup_elem+0xf3/0x170 kernel/bpf/devmap.c:796 __dev_map_lookup_elem kernel/bpf/devmap.c:441 [inline] dev_map_lookup_elem+0xf3/0x170 kernel/bpf/devmap.c:796 ____bpf_map_lookup_elem kernel/bpf/helpers.c:42 [inline] bpf_map_lookup_elem+0x5c/0x80 kernel/bpf/helpers.c:38 ___bpf_prog_run+0x13fe/0xe0f0 kernel/bpf/core.c:1997 __bpf_prog_run256+0xb5/0xe0 kernel/bpf/core.c:2237 ==========

The reproducer should be in the interpreter mode.

The C reproducer is trying to run the following bpf prog:

0: (18) r0 = 0x0 2: (18) r1 = map[id:49] 4: (b7) r8 = 16777216 5: (7b) *(u64 *)(r10 -8) = r8 6: (bf) r2 = r10 7: (07) r2 += -229 ^^^^^^^^^^

8: (b7) r3 = 8 9: (b7) r4 = 0 10: (85) call dev_map_lookup_elem#1543472 11: (95) exit

It is due to the "void *key" (r2) passed to the helper. bpf allows uninit stack memory access for bpf prog with the right privileges. This patch uses kmsan_unpoison_memory() to mark the stack as initialized.

This should address different syzbot reports on the uninit "void *key" argument during map_{lookup,delete}_elem.

Weakness: CWE-908

Which versions are affected by CVE-2024-42063?

It affects 1 product.

Products include Linux kernel.

How do I fix CVE-2024-42063?

Apply the vendor's patch.

Is CVE-2024-42063 being exploited?

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

All Linux kernel vulnerabilities

Sources

Also known as AZL-48656, BELL-CVE-2024-42063, DEBIAN-CVE-2024-42063, GHSA-8ghr-4wgh-3jq8, ROOT-OS-DEBIAN-11-CVE-2024-42063, UBUNTU-CVE-2024-42063.

Is CVE-2024-42063 in your software?

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

Check your SBOMs for free