CVE-2022-50838 in LinuxИнформация

Сводка

по VulDB • 28.06.2026

В ядре Linux устранена следующая уязвимость:

net: stream: очистка sk_error_queue в функции sk_stream_kill_queues()

Чанхон Ли (Changheon Lee) сообщил об утечке сокетов TCP, предоставив воспроизводимый пример.

Похоже, что происходит утечка сокетов TCP при следующей последовательности действий:

1) На сокете включен флаг SOF_TIMESTAMPING_TX_ACK.

Каждый пакет ACK формирует skb и помещает его в очередь ошибок из функции __skb_tstamp_tx(). Функция __skb_tstamp_tx() использует skb_clone(), если только не был также запрошен флаг SOF_TIMESTAMPING_OPT_TSONLY.

2) Если приложение также использует MSG_ZEROCOPY, то в очередь ошибок помещаются клонированные skbs, к которым прикреплена структура ubuf_info.

При выделении структуры ubuf_info функция sock_zerocopy_alloc() вызывает sock_hold().

Пока клонированные skbs остаются в очереди сокетовых ошибок (sk_error_queue), счетчик ссылок на сокет остается повышенным.

3) Приложение закрывает сокет, пока очередь ошибок не пуста.

Поскольку tcp_close() больше не очищает очередь ошибок сокета, может возникнуть ситуация, при которой TCP-сокет будет содержать как минимум один skb в очереди ошибок, который навсегда удерживает сокет активным.

Эту ошибку можно (злоупотребить) для исчерпания всей памяти ядра и зависания хоста.

Необходимо очистить очередь ошибок с правильной синхронизацией против одновременных записей.

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

Ответственный

Linux

Резервировать

30.12.2025

Раскрытие

30.12.2025

Модерация

принято

Вход

VDB-338881

EPSS

0.00239

KEV

Нет

Деятельности

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!