Удалённая DoS-уязвимость в IPv6-стеке FreeBSD

Во FreeBSD устранена уязвимость (CVE-2019-5611), позволяющая вызвать крах ядра (packet-of-death) через отправку специально фрагментированных пакетов ICMPv6 MLD (Multicast Listener Discovery). Проблема вызвана отсутствием необходимой проверки в вызове m_pulldown(), что может привести к возврату не непрерывных цепочек mbufs, вопреки ожидания вызывающей стороны.

Уязвимость устранена в обновлениях 12.0-RELEASE-p10, 11.3-RELEASE-p3 и 11.2-RELEASE-p14. В качестве обходного пути защиты можно отключить поддержку фрагментации для IPv6 или фильтровать на межсетевом экране опции в заголовке HBH (Hop-by-Hop). Интересно, что приводящая к уязвимости ошибка была выявлена ещё в 2006 году и устранена в OpenBSD, NetBSD и macOS, но осталась неисправленной во FreeBSD, несмотря на то, что разработчики FreeBSD были уведомлены о проблеме.

Также можно отметить устранение во FreeBSD ещё двух уязвимостей:

  • CVE-2019-5603 — переполнение счётчика ссылок на структуры данных в mqueuefs при использовании 32-разрядных библиотек в 64-разрядном окружении (32-bit compat). Проблема проявляется при включении mqueuefs, которая не активна по умолчанию, и может привести к доступу к файлам, каталогам и сокетам, открытым процессами, принадлежащими другим пользователям, или для организации доступа к внешним файлам из jail-окружения. При наличии у пользователя root-доступа в jail, уязвимость позволяет получить root-доступ на стороне хост-окружения.
  • CVE-2019-5612 — проблема при многопоточном доступе к устройству /dev/midistat при возникновении состояния гонки может привести к чтению областей памяти ядра вне границ выделенного для midistat буфера. На 32-разрядных системах попытка эксплуатации уязвимости приводит к краху ядра, а на 64-разрядных позволяет узнать содержимое произвольных областей памяти ядра.

Источник: opennet.ru