CVE-2026-74589 in Linux
Resumen
por VulDB • 2026-08-22
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf, sockmap: Corregir un uso-después-de-liberación (use-after-free) en sk_redir durante el veredicto de envío
sk_psock_msg_verdict() toma una referencia al socket para psock->sk_redir. tcp_bpf_send_verdict() copia ese puntero mientras mantiene bloqueado el socket de origen, pero no toma una referencia para la copia local antes de liberar el bloqueo alrededor de tcp_bpf_sendmsg_redir().
Cuando apply_bytes mantiene activo el veredicto en caché, otro sendmsg() en el mismo socket de origen puede consumir los bytes restantes y liberar la referencia en caché mientras que el primer hilo aún solo conserva el puntero local sin referencias:
CPU 0 CPU 1 sk_redir = psock->sk_redir apply_bytes permanece distinto de cero release_sock(sk) lock_sock(sk) apply_bytes alcanza cero psock->sk_redir = NULL release_sock(sk) tcp_bpf_sendmsg_redir(sk_redir) sock_put(sk_redir) tcp_bpf_sendmsg_redir(sk_redir)
El último sock_put() puede liberar sk_redir antes de que la CPU 0 lo desreferencie.
KASAN informó:
BUG: KASAN: slab-use-after-free en tcp_bpf_sendmsg_redir+0xf39/0x1020 Lectura de tamaño 8 en addr ffff888108537090 por la tarea poc/87 Rastro de llamadas (Call Trace): tcp_bpf_sendmsg_redir+0xf39/0x1020 tcp_bpf_sendmsg+0x977/0x1a50 __sys_sendto+0x32c/0x3a0 __x64_sys_sendto+0xdb/0x1b0 Asignado por la tarea 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 por la tarea 0: __kasan_slab_free+0x43/0x70 slab_free_after_rcu_debug+0xa6/0x1e0 rcu_core+0x50a/0x1850 Última creación de trabajo potencialmente relacionada: __sk_destruct+0x3da/0x540 sk_psock_destroy+0x81e/0xab0 process_one_work+0x63a/0x1070
Tome una referencia temporal al socket mientras el bloqueo del socket de origen aún protege psock->sk_redir, y libérelo después de que tcp_bpf_sendmsg_redir() devuelva. Esto mantiene cada uso sin bloqueo independiente de la propiedad del veredicto en caché.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.