Раскрыты детали по уязвимости для удалённой DoS-атаки в FreeBSD через TCP
26 марта 2026 года команда проекта FreeBSD раскрыла детали ранее обнаруженной сетевой уязвимости (CVE-2026-4247) для проведения удалённого эксплуатируемого вектора DoS-атаки (утечка mbuf) через TCP.
Протокол Transmission Control Protocol (TCP) — это транспортный протокол, ориентированный на установление соединения, который может использоваться в качестве верхнего уровня IP. При получении неожиданных сегментов TCP для установленного TCP-соединения в ответ могут быть отправлены так называемые сегменты «подтверждения запроса» (Challenge ACK), если выполняются определённые критерии. Скорость отправки подтверждений запроса ограничена, чтобы гарантировать, что удалённый узел не будет тратить слишком много циклов ЦП или исходящей полосы пропускания на локальном узле, если получено большое количество неожиданных сегментов TCP. Ограничение скорости контролируется параметрами net.inet.tcp.ack_war_timewindow и net.inet.tcp.ack_war_cnt, которые по умолчанию равны 1000 (миллисекундам) и 5, то есть подтверждения запроса будут отправлены для первых 5 соответствующих сегментов TCP, полученных в течение 1 секунды, а остальные будут проигнорированы. Обработка подтверждений запроса (Challenge ACK) — это общий код в файле tcp_subr.c, используемый во всех доступных в системе стеках TCP. Это включает в себя стеки FreeBSD по умолчанию, RACK и BBR. Существуют различия в поведении разных стеков; например, базовый стек FreeBSD отправляет подтверждения запроса (Challenge ACK) большему количеству неожиданных пакетов.
Оказалось, что когда необходимо отправить подтверждение запроса (Challenge ACK), функция tcp_respond() в FreeBSD формирует и отправляет подтверждение запроса и потребляет переданный mbuf. Если подтверждение запроса не требуется, функция
Читать на habr.com