Удалённо эксплуатируемые уязвимости во FreeBSD

Во FreeBSD устранено пять уязвимостей, среди которых имеются проблемы, которые потенциально могут привести к перезаписи данных на уровне ядра при отправке определённых сетевых пакетов или позволяют локальному пользователю повысить свои привилегии. Уязвимости исправлены в обновлениях 12.1-RELEASE-p5 и 11.3-RELEASE-p9.

Наиболее опасная уязвимость (CVE-2020-7454) вызвана отсутствием должной проверки размера пакета в библиотеке libalias при разборе специфичных для протоколов заголовков. Библиотека libalias применяется в пакетном фильтре ipfw для трансляции адресов и включает типовые функции замены адресов в IP-пакетах и разбора протоколов. Уязвимость позволяет через отправку специально оформленного сетевого пакета добиться чтения или записи данных в области памяти ядра (при применении реализации NAT в ядре) или процесса
natd (при использовании реализации NAT в пространстве пользователя). Проблема не затрагивает конфигурации NAT, построенные с использованием пакетных фильтров pf и ipf, а также конфигурации ipfw, в которых не используется NAT.

Другие уязвимости:

  • CVE-2020-7455 — ещё одна удалённо эксплуатируемая уязвимость в libalias, связанная с некорректным расчётом длины пакетов в обработчике FTP. Проблема ограничивается утечкой содержимого нескольких байт данных из области памяти ядра или процесса natd.
  • CVE-2019-15879 — уязвимость в модуле cryptodev, вызванная обращением к уже освобождённой области памяти (use-after-free), и позволяющая непривилегированному процессу переписать произвольные участки памяти ядра. В качестве обходного пути блокирования уязвимости рекомендуется выгрузить модуль cryptodev командой «kldunload cryptodev», если он был загружен (по умолчанию cryptodev не загружается). Модуль cryptodev предоставляет приложениям из пространства пользователя доступ к интерфейсу /dev/crypto для обращения к механизмам аппаратного ускорения криптографических операций (в AES-NI и OpenSSL /dev/crypto не используется).
  • CVE-2019-15880 — вторая уязвимость в cryptodev, позволяющая непривилегированному пользователю инициировать крах ядра через отправку запроса на выполнение криптографической операции с некорректным MAC. Проблема вызвана отсутствием проверки размера MAC-ключа при выделении буфера для его хранения (буфер создавался на основе переданных пользователем данных о размере, без проверки фактического размера).
  • CVE-2019-15878 — уязвимость в реализации протокола SCTP (Stream Control Transmission Protocol), вызванная некорректной проверкой разделяемого ключа, применяемого расширением SCTP-AUTH для аутентификации последовательностей SCTP. Локальное приложение может через Socket API обновить ключ, одновременно прервав соединение SCTP, что приведёт к обращению к уже освобождённой области памяти (use-after-free).

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