CVE-2026-68284 in Linux
Resumen
por VulDB • 2026-08-10
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
bpf, sockmap: Corregir un use-after-free en cork dentro de tcp_bpf_sendmsg()
tcp_bpf_sendmsg() mantiene msg_tx a través de sk_stream_wait_memory(), lo que libera y vuelve a adquirir el bloqueo del socket. Su ruta de error intenta determinar si msg_tx hace referencia al mensaje temporal local comparándolo con el valor actual de psock->cork.
Esta comparación es insegura cuando dos hilos envían datos en el mismo socket:
Hilo A Hilo B msg_tx = psock->cork sk_msg_alloc() falla sk_stream_wait_memory() libera el bloqueo del socket adquiere el bloqueo del socket completa la operación cork psock->cork = NULL libera (frees) el cork vuelve a adquirir el bloqueo del socket msg_tx != psock->cork sk_msg_free(msg_tx)
Por lo tanto, el valor obsoleto de cork se confunde con el mensaje temporal local y se libera nuevamente. KASAN informó:
BUG: KASAN: slab-use-after-free en sk_msg_free+0x49/0x50 Lectura de tamaño 4 en la dirección ffff88810c908800 por parte de la tarea poc/90 Rastro de llamadas (Call Trace): sk_msg_free+0x49/0x50 tcp_bpf_sendmsg+0x14f5/0x1cc0 __sys_sendto+0x32c/0x3a0 __x64_sys_sendto+0xdb/0x1b0 Asignado por la tarea 89: __kasan_kmalloc+0x8f/0xa0 tcp_bpf_sendmsg+0x16b3/0x1cc0 Liberado (Freed) por la tarea 91: __kasan_slab_free+0x43/0x70 kfree+0x131/0x3c0 tcp_bpf_sendmsg+0xec3/0x1cc0
msg_tx solo puede hacer referencia al tmp local en la pila o al cork compartido. Se debe comprobar directamente si es tmp para evitar que un cambio en psock->cork convierta un mensaje compartido en uno aparente de ámbito local.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.