CVE-2024-58070 in Linuxinformación

Resumen

por VulDB • 2026-05-14

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:

bpf: bpf_local_storage: Utilizar siempre bpf_mem_alloc en PREEMPT_RT

En PREEMPT_RT, kmalloc(GFP_ATOMIC) sigue sin ser seguro en contextos no preemptibles. Debe utilizarse bpf_mem_alloc en PREEMPT_RT. Este parche tiene como objetivo forzar el uso de bpf_mem_alloc en bpf_local_storage cuando CONFIG_PREEMPT_RT está habilitado.

[ 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

No es necesario ajustar los gfp_flags que se pasan a bpf_mem_cache_alloc_flags(), ya que esta función solo reconoce GFP_KERNEL. El verificador (verifier) ha garantizado que GFP_KERNEL se pase únicamente en contextos donde se permite dormir (sleepable context).

Se trata de un problema antiguo desde la primera introducción de bpf_local_storage hace aproximadamente 5 años, por lo que este parche está dirigido a bpf-next.

Es necesario utilizar bpf_mem_alloc para resolverlo, por lo que la etiqueta Fixes se establece en el commit en el que bpf_mem_alloc se utilizó por primera vez en bpf_local_storage.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

Linux

Reservar

2025-03-06

Divulgación

2025-03-06

Moderación

aceptado

Artículo

VDB-298838

CPE

listo

EPSS

0.00133

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!