В мире операционных систем, построенных на базе UNIX, технология изоляции процессов долгое время считалась одной из фундаментальных основ безопасности. Однако недавно обнаруженная критическая уязвимость в ядре FreeBSD, получившая идентификатор CVE-2025-15576, бросает вызов этому убеждению. Данная проблема позволяет злоумышленнику вырваться за пределы специальной изолированной среды, известной как «тюрьма» (jail), и получить несанкционированный доступ к файловой системе основного хоста. Эта уязвимость затрагивает стабильные ветки FreeBSD 14.3 и 13.5, подвергая риску серверы, которые используют изоляцию для разделения сервисов и повышения безопасности.
Детали уязвимости
Технология «тюрем» в FreeBSD представляет собой мощный механизм виртуализации на уровне операционной системы. Системные администраторы активно применяют её для безопасного запуска процессов в строго ограниченной среде, аналогичной классическому "chroot", но с более продвинутыми функциями. В нормальных условиях процесс, помещённый в такую «тюрьму», жёстко ограничен собственным деревом файловой системы и не может взаимодействовать с процессами или файлами основной системы. Этот барьер служит ключевой защитой от компрометации всего хоста в случае взлома одного из изолированных сервисов.
Уязвимость кроется в сложном взаимодействии двух компонентов ядра: псевдофайловой системы "nullfs" и механизма локальной межпроцессной коммуникации через Unix Domain Sockets. Компонент "nullfs" позволяет администраторам монтировать каталоги в другие точки иерархии, что удобно для организации общего доступа. Unix Domain Sockets, в свою очередь, являются стандартным способом для процессов обмениваться данными в пределах одной системы. Для эксплуатации CVE-2025-15576 злоумышленнику необходимо контролировать процессы, работающие как минимум в двух отдельных, но «родственных» «тюрьмах». Критическим условием является наличие у этих «тюрем» общего каталога, подключённого через "nullfs"-монтирование.
При выполнении этих условий два вредоносных процесса могут установить соединение через Unix Domain Socket, расположенный в общем каталоге. Через это соединение они передают друг другу файловые дескрипторы каталогов. Во время стандартной операции поиска пути в файловой системе ядро проверяет, не пытается ли операция выйти за пределы корня «тюрьмы». Однако в данном конкретном сценарии обмена дескрипторами валидация границ реализована с ошибкой. Если ядро в процессе поиска не встречает на своём пути корневой каталог «тюрьмы», ограничение игнорируется. В результате изолированный процесс может получить дескриптор, указывающий на директорию за пределами его среды, что полностью ломает механизм изоляции и открывает доступ ко всей файловой системе хоста.
Последствия успешной эксплуатации этой уязвимости крайне серьёзны, поскольку она нивелирует саму цель использования «тюрем». Выход за пределы изоляции предоставляет злоумышленникам возможность читать конфиденциальные данные, модифицировать системные файлы или исполнять произвольный код на основном хосте. Это, в свою очередь, может привести к полной компрометации инфраструктуры, утечке данных и остановке критически важных сервисов. На данный момент не существует известных обходных путей для смягчения угрозы, поэтому единственным эффективным решением является немедленная установка обновлений безопасности.
Проект FreeBSD уже выпустил патчи для всех затронутых веток. Администраторам рекомендуется безотлагательно обновить системы. Стандартная процедура включает в себя выполнение команд "fetch" и "install" через утилиту обновления FreeBSD с последующей обязательной перезагрузкой системы. Для администраторов, которые управляют кастомными сборками системы, доступны исходные коды исправлений. Их необходимо загрузить, проверить PGP-подписи, перекомпилировать ядро и перезагрузить сервер. Своевременное применение патча является критически важной мерой для поддержания целостности и безопасности инфраструктуры, построенной на FreeBSD. Данный инцидент лишний раз подчёркивает, что даже самые проверенные и надёжные механизмы изоляции требуют постоянного внимания и оперативного реагирования на обнаруженные уязвимости.