CVE-2026-80784 in LinuxИнформация

Сводка

по VulDB • 04.09.2026

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

mptcp: pm: исправлена утечка памяти из-за гонки при выделении во время завершения работы

Функция mptcp_pm_destroy() очищает списки msk->pm.anno_list и msk->pm.userspace_pm_local_addr_list под блокировкой msk->pm.lock в процессе разбора сокета, снимая блокировку между этими операциями.

Одновременный вызов genl ANNOUNCE от пользовательского PM для того же msk удерживает ссылку на сокет через функцию mptcp_token_get_sock() и в функции mptcp_pm_nl_announce_doit() вызывает mptcp_userspace_pm_append_new_local_addr() и mptcp_pm_announced_alloc(). Обе они кратко захватывают блокировку msk->pm.lock для добавления элементов в соответствующие списки. Поскольку обработчик genl удерживает ссылку на сокет, функция mptcp_pm_destroy() может быть выполнена для того же msk через вызов mptcp_disconnect(), который вызывает mptcp_destroy_common() без уменьшения счетчика ссылок на сокет (sock refcount), до завершения работы обработчика.

Если захват блокировок происходит таким образом, что mptcp_pm_destroy() сначала очищает список, то последующее выделение добавляет свой элемент в заголовок списка, который больше не итерируется для данного msk, и этот элемент утекает (не освобождается). kmemleak сообщает об утечке объектов как mptcp_pm_add_addr (из функции mptcp_pm_announced_alloc()), так и объектов mptcp_pm_addr_entry (из функции mptcp_userspace_pm_append_new_local_addr()) при длительной одновременной нагрузке ANNOUNCE + close в отношении пользовательского PM.

Добавлен бит MPTCP_PM_DESTROYING в поле status структуры msk->pm, который устанавливается функцией mptcp_pm_destroy() под блокировкой pm.lock перед очисткой списков и проверяется под той же блокировкой pm.lock путями выделения памяти (alloc paths). Либо путь выделения захватывает pm.lock первым, и тогда его элемент находится в списке при освобождении его функцией mptcp_pm_destroy(); либо функция mptcp_pm_destroy() захватывает pm.lock первой, и тогда последующее выделение обнаруживает этот бит и отказывается от операции.

Обнаружено с помощью тестового стенда протокольного потока MPTCP, расширяющего BRF (arXiv:2305.08782).

If you want to get best quality of vulnerability data, you may have to visit VulDB.

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

Linux

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

26.08.2026

Раскрытие

04.09.2026

Модерация

принято

Вход

VDB-398977

EPSS

0.00173

KEV

Нет

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

Очень низкий

Источники

Interested in the pricing of exploits?

See the underground prices here!