В TCP-стеке всех поддерживаемых веток FreeBSD выявлена опасная уязвимость (CVE-2014-3000), позволяющая инициировать крах ядра через отправку специально оформленного набора TCP-пакетов в рамках установленного сетевого соединения, сообщает opennet.ru. Так как в результате уязвимости часть памяти стека может быть переписана данными из других нитей ядра, не исключается вариант эксплуатации уязвимости, при котором злоумышленник может получить доступ к областям памяти ядра, которые потенциально могут содержать конфиденциальные данные, такие как параметры входа. При этом проведение подобной атаки отмечается как слишком трудоёмкий процесс, требующий тщательной организации атаки с учётом особенностей целевой системы. Уязвимость вызвана ошибкой в коде помещения пакетов в очередь сборки (reassembly queue). В ситуации когда в рамках TCP-соединения пакеты приходят с нарушением цепочки следования порядковых номеров, сегменты помещаются в очередь сборки и ожидают появления пакетов с недостающими номерами. Из-за ошибки, очередной сегмент данных может быть добавлен в стек при достижении лимита на максимальный размер очереди, что приводит к неопределённому состоянию памяти стека после возврата из функции помещения пакета в очередь. Проблема исправлена в выпусках 8.4-STABLE, 8.4-RELEASE-p9, 8.3-RELEASE-p16, 9.2-STABLE, 9.2-RELEASE-p5, 9.1-RELEASE-p12, 10.0-STABLE и 10.0-RELEASE-p2. В качестве обходного пути для защиты от уязвимости при помощи пакетного фильтра pf может быть включен режим нормализации входящих пакетов (правило "scrub in all").
Подробное описание