В коде NFS-сервера проектов FreeBSD и OpenBSD обнаружена уязвимость CVE-2024-29937, приводящая к удаленному выполнению кода от произвольного пользователя. Проблема существует с самого первого выпуска и затрагивает актуальные релизы OpenBSD 7.4 и FreeBSD 14.0. Детали будут представлены позже в рамках доклада на конференции по безопасности t2, проходящей в Хельсинки 18-19 апреля.
После 11 месяцев разработки опубликован релиз FreeBSD 13.2. Установочные образы сформированы для архитектур amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 и riscv64. Дополнительно подготовлены сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant.
Стала доступной новая версия FreeBSD 12.4, также данная версия является последней в ветке 12.х и будет сопровождаться до конца 2023 года.
Команда разработчиков подготовива установочные образы для всех популярных архитектур: amd64, i386, powerpc, powerpc64, powerpcspe, sparc64 и aarch64, а также готовые к работе образы в форматах QCOW2, VHD, VMDK, raw и Amazon EC2.
Значимые изменения:
Серверный процесс telnetd признан устаревшим и к 14-й ветке будет удален из системы.
В драйвере if_epair, применяемом для создания виртуальных Ethernet-интерфейсов, обеспечена многопоточность.
В утилите cp доработана работа ключей -R, -H, -L и -P.
Улучшена работа утилит nfsd, elfctl, usbconfig, fsck_ufs и growfs.
В командном интерпретаторе sh изменена логика загрузки профилей: вначале из каталога /etc/profile.d загружаются все файлы с расширением «.sh», затем загружается файл /usr/local/etc/profile, после чего файлы с расширением «.sh» загружаются из каталога /usr/local/etc/profile.d/.
В утилите tcpdump предоставлена возможность установки числа правил, отображаемых в заголовке pflog.
Cинхронизирован c DragonFly BSD код агента доставки сообщений dma (DragonFly Mail Agent), который обеспечивает приём и доставку сообщений от локальных почтовых клиентов (обработка сетевых SMTP-запросов через 25 порт не поддерживается).
В пакетном фильтре pf исправлены утечки памяти и улучшена синхронизация состояния при перенаправлении трафика при использовании pfsync.
В пакетный фильтр ipfilter добавлены проверочные вызовы DT5 и SDT для механизма трассировки dtrace. Реализована возможность сброса дампа с копией ippool в формате ippool.conf. Запрещено изменение правил ipfilter, таблиц трансляции адресов и ip-пулов (ippool) из jail-окружений, в которых не используется виртуальный сетевой стек VNET.
Во фреймворк hwpmc добавлена поддержка CPU Intel на базе микроархитектур Comet Lake, Ice Lake, Tiger Lake и Rocket Lake.
Улучшена поддержка оборудования. Устранены ошибки в драйверах aesni, aw_spi, igc, ixl, mpr, ocs_fc, snd_uaudio и usb. До версии 2.6.1 обновлён драйвер ena с поддержкой второго поколения сетевых адаптеров ENAv2 (Elastic Network Adapter), используемых в инфраструктуре Elastic Compute Cloud (EC2) для организации связи между узлами EC2.
Разработчики FreeBSD выпустили патч для критической уязвимости, связанной с переполнением буфера в утилите ping.
Уязвимости присвоен номер CVE-2022-23093 (9,8 балла — высокий уровень риска). Данная проблема может привести к удалённому выполнению кода при проверке с помощью команды ping внешнего хоста, подконтрольного злоумышленнику.
Уязвимость как обычно связана с халатным отношением разработчиков к проверке выхода за границы буфера.
Функция pr_pack копирует IP- и ICMP-заголовки во внутренние буферы без каких-либо проверок на дополнительные расширенные заголовки, не принимая во внимание то, что в пакете после заголовка IP могут присутствовать дополнительные расширенные заголовки.
Таким образом, если хост вернет пакет с дополнительными заголовками, произойдет переполнение буфера, и атакующий сможет выполнить произвольный код в системе.
Базовая система изменена на FreeBSD 13.1-RELEASE-p.5.
Теперь предоставляются два образа для всех поддерживаемых архитектур, кроме i386. Один из них для корневой файловой системы использует ZFS, а другой — UFS.
Файловые системы, используемые в версии UFS, теперь создаются с включенным журналированием программных обновлений, чтобы уменьшить проблемы с восстановлением файловой системы после сбоя.
Улучшено автоматическое определение графических драйверов. Добавлена поддержка VIA/Openchrome. Для видеокарты Nvidia, не поддерживаемой.одним из драйверов Nvidia, теперь используется nv.
Для лучшей поддержки нелатинского ввода с клавиатуры и переключения между раскладками теперь используется IBus.
Улучшен скрипт rc для загрузки модулей acpi.
Диспетчер отображения SLiM заменен на SDDM.
libreOffice и некоторые мультимедийные пакеты были удалены, чтобы уменьшить размеры образов.
Глен Барбер объявил о доступности первого релиз-кандидата для FreeBSD 12.4, окончательный выпуск которой запланирован на 5 декабря 2022 года.
Некоторые известные изменения для версии 12.4 RC1:
исправление регрессии в file(1);
обновление OpenSSH до версии 9.1p1;
исправление Sendmail с аутентификацией через cyrus-sasl-2.1.28;
обновление информации о часовом поясе до версии 2022f;
обновление sh(1) для чтения большего количества файлов профиля.
Пользователям напоминают, что это тестовый релиз, который следует использовать только в целях тестирования, и просят сообщать о любых найденных ошибках.
Начиная с пятницы, была представлена новая реализация драйвера WireGuard с множеством исправлений/улучшений по сравнению с состоянием кода от 2020 года.
FreeBSD переходит от Wine 6.0 к серии выпусков Wine 7.0.
Некоторые из основных изменений:
Большинство модулей были преобразованы в формат PE;
Улучшенная поддержка тем с включенной темой для более современного вида;
Все встроенные приложения поддерживают создание тем, а также рендеринг с высоким разрешением;
Значительно улучшен стек HID и поддержка джойстика;
Новая архитектура WoW64, которая поддерживает запуск 32-битного приложения Windows внутри 64-битного хост-процесса Unix с использованием переходников для сопоставления 32-битных системных вызовов NT с 64-битной NTDLL;
Direct3D претерпел значительные улучшения.
В частности, во FreeBSD теперь поддерживаются более низкоуровневые запросы информации о системе, такие как состояние памяти и батареи. И нам больше не нужно ссылаться на /proc и procfs в нашем сообщении об установке.
Движок Mono теперь версии 7.0.0 с некоторыми изменениями.
Пакетные изменения проведены на двух уровнях:
во-первых, многие библиотеки поддержки, такие как FAudio, GSM, LCMS2, libjpeg, libjxr, libmpg123, libpng, libtiff, libxml, libxslt, zlib, теперь включены напрямую, в то время как раньше многие из них использовались через другие порты (или полностью отключено их использование). Попутно избавились от опций LIBXSLT и MPG123;
во-вторых, полностью переработана структура каталогов в lib/.
1 октября 2022 года Александр Черников отправил в FreeBSD патч, реализовывающий поддержку протокола Netlink.
Netlink — это протокол связи, который в настоящее время используется в ядре Linux для изменения,
чтения и подписки практически на все сетевые состояния. Интерфейсы, адреса, маршруты,
брандмауэр, виртуальные сети и т.д. управляются через netlink. Это асинхронный протокол на основе TLV, обеспечивающий связь one-to-one и one-to-many.
Dragonfly BSD - это ответвление от FreeBSD 4.8 (2003), основная цель которого — эффективная работа на высоконагруженных серверах. Работа над родной кластеризацией внутри ядра потребовала сложной реализации кеша для пространства имен ФС, пространства файлов и пространства VM. Эти и другие фичи в итоге позволяют программам работать на нескольких машинах с консистентным данными в кэше.
Основные изменения:
Портирован type-2 гипервизор NVMM (NetBSD).
В статусе TODO: IPv6, Graphics, Audio, USB, PCI Passthrough...
Продолжена работа над файловой системой HAMMER2, которая примечательна такими функциями, как отдельное монтирование снапшотов, доступные на запись снапшоты, квоты на уровне директорий, инкрементальное зеркалирование, поддержка различных алгоритмов сжатия данных, multi-master зеркалирование с распределением данных на несколько хостов. В новом выпуске реализована поддержка команды growfs, позволяющей изменять размер существующего раздела HAMMER2. В состав включена экспериментальная поддержка компонента xdisk, позволяющего монтировать разделы HAMMER2 с удалённых систем. Утилита growfs теперь поддерживает увеличение HAMMER2-раздела.
Драйвер drm/amdgpu портирован из Linux 4.19.
Основной компилятор — GCC 8.
(Согласно лицензии CC-BY, отметим, что абзац про HAMMER взят с OpenNET. Текст не изменен, но дополнен.)
Эрик Таргеон [Eric Turgeon] объявил о выходе базирующейся на FreeBSD десктопной операционной системы, с MATE в качестве менеджера рабочего стола по умолчанию, GhostBSD 21.04.27.
Этот выпуск обновляет базовую систему до FreeBSD 13.0:
Я рад сообщить о доступности нового ISO-образа - 21.04.27. Когда мы начали переносить весь код GhostBSD с 12.2-STABLE на 13.0-STABLE, возникло несколько проблем с OpenRC, devd и драйверами, которые не запускались при загрузке.
Мы обнаружили, что реализации служб OpenRC devd и devmatch не работают должным образом.
Нам пришлось создать rc.devmatch, чтобы заменить реализацию службы OpenRC devmatch.conf для devd.
Теперь, когда devmatch запускается правильно, все драйверы запускаются при загрузке и при подключении нового устройства.
Кроме того, мы смогли удалить все изменения, которые мы внесли в ядро GENERIC, сделав ядро по умолчанию немного меньше.
Я исправил службы ntpd и WireGuard. Автоматическая настройка сетевых карт была удалена из NetworkMgr и добавлена в скрипт запуска devd".
Команда FreeBSD рада объявить о доступности FreeBSD 13.0-RELEASE — первого выпуска ветки stable/13.
Некоторые из нововведений:
clang, lld, lldb, llvm, библиотеки libunwind и libc++ обновлены в базовой системе до версии 11.0.1.
Из базовой системы удалена устаревшая версия отладчика GNU. Для анализа крэшдампов ядра следует пользоваться текущей версией gdb из портов/пакетов.
Из дерева исходников удалены устаревшие binutils 2.17 и gcc(1) 4.2.1. На данный момент все поддерживаемые архитектуры используют LLVM/clang.
BSD grep(1) теперь устанавливается по умолчанию. GNU grep удалён из базовой системы.
Из libalias(3) удалена поддержка протокола CU-SeeMe.
Добавлен драйвер qat(4) — поддержка ряда функций для ускорения криптографических вычислений на устройствах Intel QuickAssist (QAT). qat(4) работает с устройствами QAT, интегрированными в платформы Atom C2000 и C3000, Xeon C620 и D-1500, а также с Intel QAT Adapter 8950.
Удалены драйверы ряда устаревших устройств (полный список — в замечаниях к выпуску).
Ряд драйверов устройств портирован на архитектуру PowerPC64.
В ядро добавлена возможность использования крипо-ускорителей для разгрузки ЦП при работе с TLS (KTLS). Поддерживаются версии TLS от 1.0 до 1.3 и алгоритмы AES-CBC и AES-GCM. Для использования KTLS необходима совместимая SSL-библиотека в пространстве пользователя. На данный момент библиотека OpenSSL базовой системы не включает поддержку KTLS по умолчанию, однако она может быть разрешена параметром WITH_OPENSSL_KTLS при сборке.
64-битная архитектура ARM, известная как arm64 или aarch64, поднята до уровня Tier-1.
Последние несколько дней свободная операционная система FreeBSD переходила от своей разработки, которая велась с помощью Subversion, к использованию распределенной системы контроля версий Git, которая используется в большинстве других проектов с открытым исходным кодом.
Переход FreeBSD с Subversion на Git состоялся. Миграция была завершена на днях, и теперь новый код поступает в их основной репозиторий Git и на Github.