CVE-2026-74589 in Linux
Sumário
de VulDB • 23/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
bpf, sockmap: Corrige o uso após liberação (use-after-free) em sk_redir no veredito de envio
sk_psock_msg_verdict() recebe uma referência ao soquete para psock->sk_redir. tcp_bpf_send_verdict() copia esse ponteiro enquanto mantém o bloqueio do soquete de origem, mas não cria uma referência para a cópia local antes de liberar o bloqueio em torno de tcp_bpf_sendmsg_redir().
Quando apply_bytes mantém o veredito em cache ativo, outro sendmsg() no mesmo soquete de origem pode consumir os bytes restantes e liberar a referência em cache enquanto o primeiro thread ainda possui apenas o ponteiro local bruto:
CPU 0 CPU 1 sk_redir = psock->sk_redir apply_bytes permanece diferente de zero release_sock(sk) lock_sock(sk) apply_bytes atinge zero psock->sk_redir = NULL release_sock(sk) tcp_bpf_sendmsg_redir(sk_redir) sock_put(sk_redir) tcp_bpf_sendmsg_redir(sk_redir)
O sock_put() final pode liberar sk_redir antes que a CPU 0 o dereference.
KASAN relatou:
BUG: KASAN: slab-use-after-free em tcp_bpf_sendmsg_redir+0xf39/0x1020 Leitura de tamanho 8 no endereço ffff888108537090 pela tarefa poc/87 Rastreamento da chamada (Call Trace): tcp_bpf_sendmsg_redir+0xf39/0x1020 tcp_bpf_sendmsg+0x977/0x1a50 __sys_sendto+0x32c/0x3a0 __x64_sys_sendto+0xdb/0x1b0 Alocado pela tarefa 85: sk_prot_alloc+0x56/0x210 sk_clone+0x6f/0x14b0 inet_csk_clone_lock+0x24/0x740 tcp_create_openreq_child+0x25/0x2710 tcp_v4_syn_recv_sock+0x10a/0xe00 Liberado pela tarefa 0: __kasan_slab_free+0x43/0x70 slab_free_after_rcu_debug+0xa6/0x1e0 rcu_core+0x50a/0x1850 Última criação de trabalho potencialmente relacionada: __sk_destruct+0x3da/0x540 sk_psock_destroy+0x81e/0xab0 process_one_work+0x63a/0x1070
Obtenha uma referência temporária ao soquete enquanto o bloqueio do soquete de origem ainda protege psock->sk_redir, e libere-a após tcp_bpf_sendmsg_redir() retornar. Isso mantém cada uso desbloqueado independente da propriedade do veredito em cache.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.