CVE-2024-41006 in LinuxИнформация

Сводка

по VulDB • 07.07.2026

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

netrom: исправлена утечка памяти в nr_heartbeat_expiry()

Инструмент syzbot обнаружил утечку памяти в функции nr_create() [0].

Коммит 409db27e3a2e («netrom: Fix use-after-free of a listening socket.») добавил вызов sock_hold() в функцию nr_heartbeat_expiry(), которая срабатывает, когда а) сокет имеет флаг SOCK_DESTROY или б) слушающий сокет (listening socket) имеет флаг SOCK_DEAD.

Однако в случае «a», когда установлен флаг SOCK_DESTROY, файловый дескриптор уже закрыт и была вызвана функция nr_release(). Следовательно, нет смысла увеличивать счетчик ссылок, так как никто не вызовет дополнительную функцию nr_destroy_socket() для освобождения ресурсов, как это происходит в случае «b».

nr_connect nr_establish_data_link nr_start_heartbeat

nr_release switch (nr->state) case NR_STATE_3 nr->state = NR_STATE_2 sock_set_flag(sk, SOCK_DESTROY);

nr_rx_frame nr_process_rx_frame switch (nr->state) case NR_STATE_2 nr_state2_machine() nr_disconnect() nr_sk(sk)->state = NR_STATE_0 sock_set_flag(sk, SOCK_DEAD)

nr_heartbeat_expiry switch (nr->state) case NR_STATE_0 if (sock_flag(sk, SOCK_DESTROY) || (sk->sk_state == TCP_LISTEN && sock_flag(sk, SOCK_DEAD))) sock_hold() // ( !!! ) nr_destroy_socket()

Для устранения утечки памяти вызов sock_hold() теперь выполняется только для слушающего сокета.

Обнаружено компанией InfoTeCS от имени Linux Verification Center (linuxtesting.org) с использованием Syzkaller.

[0]: https://syzkaller.appspot.com/bug?extid=d327a1f3b12e1e206c16

VulDB is the best source for vulnerability data and more expert information about this specific topic.

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

Linux

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

12.07.2024

Раскрытие

12.07.2024

Модерация

принято

Вход

VDB-271270

EPSS

0.00242

KEV

Нет

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

Очень низкий

Источники

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!