CVE-2024-42063

Source
https://cve.org/CVERecord?id=CVE-2024-42063
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-42063.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-42063
Downstream
Published
2024-07-29T15:52:28.533Z
Modified
2026-03-13T07:56:12.850442Z
Summary
bpf: Mark bpf prog stack with kmsan_unposion_memory in interpreter mode
Details

In the Linux kernel, the following vulnerability has been resolved:

bpf: Mark bpf prog stack with kmsanunposionmemory in interpreter mode

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

========== BUG: KMSAN: uninit-value in __devmaplookupelem kernel/bpf/devmap.c:441 [inline] BUG: KMSAN: uninit-value in devmaplookupelem+0xf3/0x170 kernel/bpf/devmap.c:796 __devmaplookupelem kernel/bpf/devmap.c:441 [inline] devmaplookupelem+0xf3/0x170 kernel/bpf/devmap.c:796 ____bpfmaplookupelem kernel/bpf/helpers.c:42 [inline] bpfmaplookupelem+0x5c/0x80 kernel/bpf/helpers.c:38 ___bpfprogrun+0x13fe/0xe0f0 kernel/bpf/core.c:1997

__bpfprogrun256+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 devmaplookup_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 kmsanunpoisonmemory() to mark the stack as initialized.

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

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/42xxx/CVE-2024-42063.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
bd4cf0ed331a275e9bf5a49e6d0fd55dffc551b8
Fixed
b30f3197a6cd080052d5d4973f9a6b479fd9fff5
Fixed
d812ae6e02bd6e6a9cd1fdb09519c2f33e875faf
Fixed
3189983c26108cf0990e5c46856dc9feb9470d12
Fixed
e8742081db7d01f980c6161ae1e8a1dbc1e30979

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-42063.json"