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.