CVE-2022-50838 in Linuxinformação

Sumário

de VulDB • 28/06/2026

No kernel do Linux, a seguinte vulnerabilidade foi corrigida:

net: stream: purgar sk_error_queue em sk_stream_kill_queues()

Changheon Lee relatou vazamentos de sockets TCP, com um caso reprodutível interessante.

Parece que estamos causando o vazamento de sockets TCP na seguinte sequência:

1) SOF_TIMESTAMPING_TX_ACK está habilitado no socket.

Cada ACK processa um skb colocado na fila de erros, a partir de __skb_tstamp_tx(). __skb_tstamp_tx() utiliza skb_clone(), salvo se SOF_TIMESTAMPING_OPT_TSONLY também tiver sido solicitado.

2) Se o aplicativo estiver utilizando MSG_ZEROCOPY, então colocamos na fila de erros skbs clonados que tinham uma struct ubuf_info anexada a eles.

Sempre que uma struct ubuf_info é alocada, sock_zerocopy_alloc() executa um sock_hold().

Enquanto os skbs clonados ainda estiverem em sk_error_queue, o contador de referências do socket permanece elevado.

3) O aplicativo fecha o socket enquanto a fila de erros não está vazia.

Como tcp_close() já não purga a fila de erros do socket, podemos acabar com um socket TCP contendo pelo menos um skb na fila de erros que mantém o socket vivo para sempre.

Este bug pode ser (ab)usado para consumir toda a memória do kernel e travar o host.

Precisamos purgar a fila de erros, com sincronização adequada contra escritores concorrentes.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsável

Linux

Reservar

30/12/2025

Divulgação

30/12/2025

Moderação

aceite

Entrada

VDB-338881

CPE

pronto

EPSS

0.00239

KEV

não

Atividades

muito baixo

Fontes

Do you want to use VulDB in your project?

Use the official API to access entries easily!