FreeBSD раскрыла DoS-дыру в TCP: обновление уже вышло Обложка: Скайрид

FreeBSD раскрыла DoS-дыру в TCP: обновление уже вышло

Новости
Главное:

  • FreeBSD 26 марта 2026 года раскрыла детали уязвимости FreeBSD-SA-26:06.tcp, которая позволяет провести удалённую DoS-атаку через TCP.
  • Проблема связана с утечкой mbuf — сетевых буферов ядра — при обработке Challenge ACK; атакующий может истощать память, отправляя специальные TCP-пакеты.
  • Исправления уже внесены в ветки stable/15, releng/15.0, stable/14, releng/14.4 и releng/14.3; временно риск можно снизить через sysctl net.inet.tcp.ack_war_timewindow=0.

FreeBSD 26 марта 2026 года опубликовала подробности уязвимости FreeBSD-SA-26:06.tcp, которая затрагивает обработку TCP и может использоваться для удалённой DoS-атаки. Проблема уже исправлена в поддерживаемых ветках системы, а администраторам рекомендовано как можно скорее обновить серверы и сетевые узлы на FreeBSD.

Сбой связан с механизмом Challenge ACK — это специальные ответные TCP-пакеты, которые система отправляет при получении неожиданных сегментов в уже установленном соединении. Чтобы такой обмен не перегружал машину, в FreeBSD по умолчанию действует ограничение: за одну секунду отправляются только первые 5 таких ответов. Для этого используются параметры net.inet.tcp.ack_war_timewindow=1000 и net.inet.tcp.ack_war_cnt=5.

Как выяснили разработчики, в этой логике возникла утечка mbuf. Так в FreeBSD называются буферы ядра для работы с сетевыми пакетами. Если пакет подпадает под условия Challenge ACK, но выходит за пределы лимита скорости, система теряет один mbuf. Злоумышленник, который находится на пути трафика или может сам установить TCP-соединение с уязвимой машиной, способен многократно отправлять такие пакеты и постепенно исчерпать сетевые буферы, что приведёт к отказу в обслуживании.

Уязвимость затрагивает общий код в tcp_subr.c и касается всех доступных в системе стеков TCP, включая стандартный стек FreeBSD, а также RACK и BBR. При этом поведение стеков различается: базовый стек FreeBSD отправляет Challenge ACK для большего числа неожиданных пакетов. Временной мерой разработчики предлагают отключить ограничение по времени для таких ответов, установив net.inet.tcp.ack_war_timewindow в 0. Это уменьшает риск утечки, но увеличивает нагрузку на процессор, потому что хост будет отвечать на все подходящие пакеты.

Исправления уже включены в stable/15, releng/15.0, stable/14, releng/14.4 и releng/14.3. В advisory перечислены коммиты с патчами для каждой ветки. FreeBSD рекомендует переходить на поддерживаемые стабильные и релизные версии, выпущенные после даты исправления, а не ограничиваться временной настройкой sysctl.

Контекст

В декабре 2025 года FreeBSD выпустила релиз 15.0 и одновременно сократила срок сопровождения крупных веток с 5 до 4 лет. В марте 2026 года вышла версия FreeBSD 14.4, которая тоже получила исправление этой проблемы.

Что это значит на практике

Администраторам FreeBSD-систем стоит проверить используемую ветку и установить обновления безопасности, особенно на серверах с активными TCP-соединениями. Временная настройка через sysctl может помочь сразу, но она не заменяет полноценный патч.

Топики: ,