CVE-2024-58070 in Linux
Zusammenfassung
von VulDB • 20.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
bpf: bpf_local_storage: Verwende bpf_mem_alloc in PREEMPT_RT immer
In PREEMPT_RT ist kmalloc(GFP_ATOMIC) im nicht-preemptiblen Kontext weiterhin nicht sicher. bpf_mem_alloc muss in PREEMPT_RT verwendet werden. Dieser Patch erzwingt die Verwendung von bpf_mem_alloc in bpf_local_storage, wenn CONFIG_PREEMPT_RT aktiviert ist.
[ 35.118559] BUG: Aufruf einer schlafenden Funktion aus ungültigem Kontext in kernel/locking/spinlock_rt.c:48
[ 35.118566] in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 1832, name: test_progs
[ 35.118569] preempt_count: 1, erwartet: 0
[ 35.118571] RCU nest depth: 1, erwartet: 1
[ 35.118577] INFO: lockdep ist deaktiviert.
... [ 35.118647] __might_resched+0x433/0x5b0
[ 35.118677] rt_spin_lock+0xc3/0x290
[ 35.118700] ___slab_alloc+0x72/0xc40
[ 35.118723] __kmalloc_noprof+0x13f/0x4e0
[ 35.118732] bpf_map_kzalloc+0xe5/0x220
[ 35.118740] bpf_selem_alloc+0x1d2/0x7b0
[ 35.118755] bpf_local_storage_update+0x2fa/0x8b0
[ 35.118784] bpf_sk_storage_get_tracing+0x15a/0x1d0
[ 35.118791] bpf_prog_9a118d86fca78ebb_trace_inet_sock_set_state+0x44/0x66
[ 35.118795] bpf_trace_run3+0x222/0x400
[ 35.118820] __bpf_trace_inet_sock_set_state+0x11/0x20
[ 35.118824] trace_inet_sock_set_state+0x112/0x130
[ 35.118830] inet_sk_state_store+0x41/0x90
[ 35.118836] tcp_set_state+0x3b3/0x640
Es besteht kein Bedarf, die Übergabe der gfp_flags an bpf_mem_cache_alloc_flags() anzupassen, da diese nur GFP_KERNEL berücksichtigt. Der Verifizierer hat sichergestellt, dass GFP_KERNEL nur in einem schlafbaren Kontext übergeben wird.
Dies ist ein altes Problem, das seit der ersten Einführung von bpf_local_storage vor etwa 5 Jahren besteht, daher zielt dieser Patch auf bpf-next ab.
bpf_mem_alloc ist erforderlich, um das Problem zu lösen, daher wird das Fixes-Tag auf den Commit gesetzt, in dem bpf_mem_alloc erstmals in bpf_local_storage verwendet wurde.
If you want to get best quality of vulnerability data, you may have to visit VulDB.