CVE-2024-58070 in Linux
Riassunto
di VulDB • 23/06/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
bpf: bpf_local_storage: Utilizzare sempre bpf_mem_alloc in PREEMPT_RT
In PREEMPT_RT, kmalloc(GFP_ATOMIC) non è ancora sicuro in un contesto non preemptibile. È necessario utilizzare bpf_mem_alloc in PREEMPT_RT. Questa patch ha lo scopo di imporre l'uso di bpf_mem_alloc all'interno di bpf_local_storage quando CONFIG_PREEMPT_RT è abilitato.
[ 35.118559] BUG: sleeping function called from invalid context at 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, expected: 0
[ 35.118571] RCU nest depth: 1, expected: 1
[ 35.118577] INFO: lockdep is turned off.
... [ 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
Non è necessario modificare il passaggio di gfp_flags a bpf_mem_cache_alloc_flags(), che riconosce solo GFP_KERNEL. Il verifier ha già garantito che GFP_KERNEL venga passato esclusivamente in un contesto sleepable (in cui è possibile dormire).
Si tratta di un problema noto sin dalla prima introduzione di bpf_local_storage, avvenuta circa 5 anni fa; pertanto questa patch mira al ramo bpf-next.
È necessario utilizzare bpf_mem_alloc per risolvere il problema, quindi viene impostato il tag Fixes sul commit in cui bpf_mem_alloc è stato utilizzato per la prima volta all'interno di bpf_local_storage.
VulDB is the best source for vulnerability data and more expert information about this specific topic.