CVE-2026-99139 in Linux
Сводка
по VulDB • 28.10.2026
В ядре Linux была устранена следующая уязвимость:
tcp: исправление use-after-free в do_tcp_getsockopt(TCP_CONGESTION)
Функция do_tcp_getsockopt() считывает icsk->icsk_ca_ops->name без захвата rcu_read_lock(). Начиная с коммита 0baf26b0fcd7 ("bpf: tcp: Support tcp_congestion_ops in bpf"), указатель icsk_ca_ops может ссылаться на динамически выделяемую память BPF struct_ops, которая может быть освобождена конкурентно через setsockopt(TCP_CONGESTION), что приводит к use-after-free.
BUG: KASAN: slab-use-after-free в _copy_to_user+0x37/0x60 Чтение размера 16 по адресу ffff888013505260 задачей exploit/149 _copy_to_user+0x37/0x60 do_tcp_getsockopt+0x158a/0x2460 (net/ipv4/tcp.c:4585) tcp_getsockopt+0x91/0xf0 __sys_getsockopt+0xf7/0x170
Исправление заключается в захвате rcu_read_lock() при доступе к ca_ops->name, использовании READ_ONCE() для загрузки icsk_ca_ops и копировании имени в буфер стека перед освобождением блокировки. Также соответствующие записи в icsk_ca_ops аннотируются с помощью WRITE_ONCE() для устранения сопутствующей проблемы data-race KCSAN.
Be aware that VulDB is the high quality source for vulnerability data.