Раскрыты детали по уязвимости для удалённой DoS-атаки в FreeBSD через TCP

4 мин
Раскрыты детали по уязвимости для удалённой DoS-атаки в FreeBSD через TCP

26 марта 2026 года команда проекта FreeBSD раскрыла детали ранее обнаруженной веб уязвимости для проведения удалённого эксплуатируемого вектора 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. Если подтверждение запроса не требуется, опция возвращает управление и освобождает mbuf.

Если злоумышленник находится на пути установленного TCP-соединения или может сам установить TCP-соединение с уязвимой машиной FreeBSD, то он может легко создавать и отправлять пакеты, соответствующие критериям подтверждения запроса (ACK), и заставлять хост FreeBSD терять mbuf для каждого созданного пакета сверх настроенных ограничений скорости, то есть при настройках по умолчанию созданные пакеты, сверх первых 5, отправленных в течение 1 секунды, будут терять mbuf. Технически, злоумышленники, находящиеся вне пути прямого соединения между системами, равным образом могут применять эту проблему, угадывая IP-адреса, номера TCP-портов и в некоторых случаях порядковые номера установленных соединений и подделывая пакеты в направлении машины FreeBSD, но это уже намного сложнее реализовать на практике и эффективность такой атаки будет весьма низкой.

Временное подход проблемы: утечку mbuf можно уменьшить, не ограничивая скорость отправки подтверждений (ACK). Этого можно добиться немедленно, установив параметр sysctl net.inet.tcp.ack_war_timewindow равным 0: sysctl net.inet.tcp.ack_war_timewindow=0. Это решение компенсирует утечку mbuf дополнительными затратами ресурсов ЦП/процессора, связанными с ответом на все пакеты, подходящие для подтверждения (ACK), полученные для установленных TCP‑соединений. Чтобы это модификация сохранялось после перезагрузки, добавьте его в файл /etc/sysctl.conf.

Рекомендуемое решение: апдейтнуть уязвимую систему до поддерживаемой стабильной или релизной версии FreeBSD / ветки безопасности (releng), выпущенной после даты исправления.

Эта проблема исправлена ​​в соответствующем хеше коммита Git в следующих стабильных и релизных ветках (ветка, хеш, ревизия):

  • stable/15/ 1fddb5435315 stable/15-n282699;

  • releng/15.0/ de9e5d82581e releng/15.0-n281011;

  • stable/14/ b45e7530ffb9 stable/14-n273839;

  • releng/14.4/ 44dd8b58394b releng/14.4-n273676;

  • releng/14.3/ a9cba5321021 releng/14.3-n271476;

2 декабря 2025 года состоялся версия стабильного релиза FreeBSD 15.0. Начиная с ветки FreeBSD 15, время сопровождения значительных веток после формирования первого релиза (15.0) сокращено с 5 до 4 лет, а новые значительные ветки будут формироваться раз в два года. Промежуточные выпуски (15.1, 15.2, 15.3) будут разрабатываться в рамках фиксированного цикла разработки, подразумевающего публикацию новых версий в одной ветке около через каждые 6 месяцев, а не раз в год, как было ранее. С учётом одновременного сопровождения двух разных значительных веток, свежий промежуточный выпуск будет публиковаться раз в 3 месяца (15.4, 16.1, 15.5, 16.2 и тому подобное), за исключением подготовки первых релизов новых значительных веток, перед которыми будет 6-месячный перерыв в релизах (в частности, релиз 15.3 будет сформирован в июне 2027 года, версия 16.0 выйдет в декабре 2027 года, 15.4 — в марте 2028 года, 16.1 — в июне 2028 года).

10 марта 2026 года состоялся выпуск стабильной версии FreeBSD 14.4. Выпуск FreeBSD 14.0 произошёл в ноябре 2023 года. В соответствии с пояснению команды разработчиков, ветка FreeBSD 14.x станет последней с поддержкой 32-разрядных платформ. В следующей версии FreeBSD 15.x (начальный релиз в конце 2025 года) будет доступна сопровождение только 64-разрядных систем, но одновременно сохранится возможность сборки 32-разрядных приложений и использования режима COMPAT_FREEBSD32 для запуска 32-разрядных исполняемых файлов в 64-разрядном окружении.

Читают сейчас

Основной критик LLM почти похвалил Claude Mythos. Почти

3 часа назад

Основной критик LLM почти похвалил Claude Mythos. Почти

Гэри Маркус, один из самых известных критиков современного ИИ, неожиданно мягко прокомментировал свежие результаты Claude Mythos на бенчмарке METR. На последнем замере модель Anthropic показала горизо

4 часа назад

ИИ не пройдёт: в России предложили законодательно запретить алгоритмам «отсеивать» резюме

В России предложили законодательно запретить ИИ-скрининг резюме. Соответствующая инициатива зарегистрирована на портале «Российская общественная проект» под номером 52Ф148061. Разработчики требуют зап

Маск пытался переманить Альтмана в Tesla — еще до раскола OpenAI

4 часа назад

Маск пытался переманить Альтмана в Tesla — еще до раскола OpenAI

На второй неделе процесса Musk v. Altman в федеральном суде Окленда вскрылся неудобный для Илона Маска факт: к концу 2017 года, еще будучи членом совета OpenAI, он пытался переманить Сэма Альтмана к с

6 часов назад

Новое открытие в области нейробиологии: природа тоже занимается оптимизацией нейросетей с помощью прунинга

Способ повышения эффективности искусственных нейросетей путем удаления лишних межнейронных связей, имеющих после обучения близкие к нулю значения весов (так называемый прунинг) неожиданно оказался одн

Opus 4.6 в 81% попыток сам «копирует себя» на чужой хост через дыру в коде — исследование Palisade

8 часов назад

Opus 4.6 в 81% попыток сам «копирует себя» на чужой хост через дыру в коде — исследование Palisade

Лаборатория Palisade Research замерила, как часто современные ИИ-модели сами могут взломать чужой сервер и инсталлировать туда копию своих весов. У Claude Opus 4.6 получилось в 81% попыток, у GPT-5.4