CVE-2022-50838 in Linuxinformación

Resumen

por VulDB • 2026-06-28

En el núcleo de Linux se ha resuelto la siguiente vulnerabilidad:

net: stream: purgar sk_error_queue en sk_stream_kill_queues()

Changheon Lee reportó fugas (leaks) de sockets TCP, con un caso reproducible claro.

Parece que hay una fuga de sockets TCP siguiendo esta secuencia:

1) Se habilita SOF_TIMESTAMPING_TX_ACK en el socket.

Cada ACK generará un skb colocado en la cola de errores, desde __skb_tstamp_tx(). __skb_tstamp_tx() utiliza skb_clone(), a menos que también se haya solicitado SOF_TIMESTAMPING_OPT_TSONLY.

2) Si la aplicación también está utilizando MSG_ZEROCOPY, entonces colocamos en la cola de errores skbs clonados que tenían adjunta una estructura ubuf_info.

Cada vez que se asigna una struct ubuf_info, sock_zerocopy_alloc() realiza un sock_hold().

Mientras los skbs clonados permanezcan en sk_error_queue, el contador de referencias del socket (socket refcount) se mantiene elevado.

3) La aplicación cierra el socket mientras la cola de errores no está vacía.

Dado que tcp_close() ya no purga la cola de errores del socket, podríamos terminar con un socket TCP con al menos un skb en la cola de errores manteniendo el socket vivo para siempre.

Este bug puede ser (abus) utilizado para consumir toda la memoria del kernel y congelar el host.

Es necesario purgar la cola de errores, con sincronización adecuada frente a escritores concurrentes.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Reservar

2025-12-30

Divulgación

2025-12-30

Moderación

aceptado

Artículo

VDB-338881

CPE

listo

EPSS

0.00239

KEV

no

Actividades

muy bajo

Fuentes

Do you know our Splunk app?

Download it now for free!