Новые уязвимости FreeBSD

30 июня 2026 года были опубликованы уведомления об исправлении 13 новых уязвимостей в ОС FreeBSD.
- CVE-2026–49418. Пользователь с доступом к устройству, имеющему memory-mapped интерфейс, может организовать double-free/use-after-free в ядре. Вероятно, это может привести к повышению привилегий.
- CVE-2026–49419. (только FreeBSD 15+) Двойное уменьшение refcount текущего jail-а при обработке ошибки обращения к другому jail по jail descriptor-у (появились в FreeBSD 15), приводящее в итоге к незапланированному освобождению управляющей структуры jail-а и последующими use-after-free везде где она используется. Теоретически может приводить к повышению привилегий.
- CVE-2026–49415. При выполнении setuid-программы права доступа к её памяти устанавливаются чуть позже, чем эта память инициализируется, что позволяет в небольшой промежуток времени получить к ней доступ и отредактировать её, не имея нужных привилегий, через procfs или linprocfs. В большинстве систем procfs, и тем более libprocfs, не монтируются, так что проблема скорее всего мало кого затрагивает.
- CVE-2026–49429, CVE-2026–49430, CVE-2026–49431. (только для систем с ZFS) Первые две ошибки связаны с выделением памяти некорректного размера: выделяется буфер размером, переданным в виде 32-битного числа, а затем в него записываются данные настоящего размера, что приводит к переполнению, если реальный размер буфера был больше 4ГБ. Обе они могут провоцироваться только root-ом, либо пользователем с явно добавленными привилегиями на уязвимые операции. Третья ошибка доступна для эксплуатации всем, она позволяет кому угодно навесить на датасет флаг »$hasrecvd» с помощью ZFS_IOC_SET_PROP (насколько это опасно, из анонса непонятно).
- CVE-2026–49420. Отсутствие должной проверки размера пакета перед записью его в буфер фиксированного размера в стеке в libalias-модуле поддержки RTSP приводит к возможности удалённо и без авторизации переполнить стек либо ядра (для ipfw nat) либо процесса natd (который обычно запущен от root). Потенциально может привести к RCE. Спровоцировать уязвимость может злонамеренный хост внутри локальной сети за NAT, реализованном через libalias, шлющий вредоносные RTSP-пакеты. Соответственно, уязвимость не затрагивает хосты, на который не запущен NAT в том или ином виде. А так же: natd перестанет быть уязвимым, если убрать строчку libalias_smedia.so из /etc/libalias.conf и перезапустить natd, а ipfw nat не будет уязвимым без загрузки модуля alias_smedia.ko (там не указано, может ли он его подгружать автоматически). А так же, уязвимый обработчик смотрит только TCP/UDP пакеты, идущие наружу, у которых один из портов 554 или 7070 — если зафарйволить такие пакеты до их попадания в NAT, уязвимость тоже исчезнет.
- CVE-2026–49421. unlinkat () и funlinkat () не учитывали флаг AT_RESOLVE_BENEATH, который должен был запрещать при проходе данного пути выходить за пределы директории, указанной аргументом dirfd. Таким образом, позволялось удалять файлы за пределами директории, когда вызывающий код хотел данное ограничение ввести.
- CVE-2026–49422. Гонка в модуле tcp_rack.ko (по умолчанию он не загружен). Каждому tcp-сокету можно индивидуально выбирать tcp-стек, через который он будет работать, в том числе переключая их на лету. Если сделать так: 1) на сокете с tcp_rack вызываем rack-специфичный setsockopt (), 2) в другом треде успеваем быстро переключить tcp-стек с rack на другой и ещё раз переключить обратно на rack в нужный момент времени, то rack-обработчик setsockopt () будет работать со старым (до переключения) адресом структуры состояния сокета, что приводит к повреждению памяти и возможному повышению привилегий. Узявимы только системы где явно загружен tcp_rack.ko, это не дефолт.
- CVE-2026–49427, CVE-2026–49428. POSIX largepages (shm_create_largepage) при аллокации недостаточно аккуратно размечались как используемые, что могло приводить к их ошибочному освобождению при разных обстоятельствах (упомянуты вызовы sendfile с флагом SF_NOCACHE, open с флагом O_TRUNC и fspacectl) и последующим use-after-free с обычными последствиями.
- CVE-2026–49426. Некорректные логи audit (4) про удалённые сисколлы через ptrace (PT_SC_REMOTE). Могут запутать системы анализа подозрительных ситуаций, если таковые используются.
- CVE-2026–49423. Возможный kernel-panic при приёме данных через kTLS с участием TLS 1.2 CBC-записей. Чтобы избежать проблемы, можно сделать kern.ipc.tls.enable=0 или kern.ipc.tls.cbc_enable=0.
- CVE-2026–49424. Утечка данных (104 байта) из стека ядра при вызове linux-compat waitid (), который забывает обнулять неиспользуемую часть linux-структуры siginfo_t при переносе в неё данных из freebsd-шной. В обычных GENERIC-ядрах linux-эмулятор по умолчанию выключен, и включается только ручной подгрузкой модуля.
- CVE-2026–49425. Аналогично предыдущему, 32-битное kevent забывает обнулять 32-битную структуру перед переносом в неё данных из нативной 64-битной, что приводит к утечке данных из стека. По умолчанию 32-битная совместимость в ядре включена (не модулем).
- CVE-2026–58081, CVE-2026–58082. Уязвимости в iconv. Первая: многие его модули не проверяют размер предоставленного вызывающим кодом выходного буфера перед записью в него результата (упомянуты HZ, UTF-7, VIQR, ZW). Вторая: модуль ISO-2022 использует 6-байтовый буфер в стеке для внутренних операций, но в него может быть записано до 10 байт, портя стек. В итоге, запуск iconv для конвертации в или из одной из указанных кодировок с непроверенными входными данными может быть подвержен переполнениям буферов.
>>> FreeBSD Security Advisories
