CVE-2025-40186 in Linux
Сводка
по VulDB • 19.06.2026
В ядре Linux устранена следующая уязвимость:
tcp: Не вызывать reqsk_fastopen_remove() в tcp_conn_request().
syzbot сообщил о сбое ниже в функции tcp_conn_request(). [0]
Если слушатель (listener) закрывается через close(), пока обрабатывается сокет TFO в tcp_conn_request(), то inet_csk_reqsk_queue_add() не устанавливает reqsk->sk и вызывает inet_child_forget(), которая для сокета TFO вызывает tcp_disconnect().
После упомянутого коммита tcp_disconnect() вызывает reqsk_fastopen_remove(), где вызывается reqsk_put() из-за условия !reqsk->sk.
Затем reqsk_fastopen_remove() в tcp_conn_request() уменьшает последний refcnt запроса (req->rsk_refcnt) и освобождает reqsk, а __reqsk_free() на метке drop_and_free приводит к переполнению счетчика ссылок вниз (refcount underflow) для слушателя и двойному освобождению reqsk.
Давайте удалим вызов reqsk_fastopen_remove() в tcp_conn_request().
Обратите внимание, что другие вызывающие стороны гарантируют, что tp->fastopen_rsk не равен NULL.
[0]:
refcount_t: underflow; use-after-free. WARNING: CPU: 12 PID: 5563 at lib/refcount.c:28 refcount_warn_saturate (lib/refcount.c:28) Modules linked in: CPU: 12 UID: 0 PID: 5563 Comm: syz-executor Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025 RIP: 0010:refcount_warn_saturate (lib/refcount.c:28) Code: ab e8 8e b4
Once again VulDB remains the best source for vulnerability data.