Современные операционные системы стали значительно более защищёнными благодаря внедрению механизмов, ограничивающих возможности программ и предотвращающих распространение вредоносного ПО. Одним из таких механизмов в macOS является песочница (sandboxing) - технология, регулирующая доступ приложений к системным ресурсам для минимизации вреда при компрометации. Несмотря на эти меры, на свет появилась уязвимость CVE-2025-43330, которая эксплуатирует особенности обработки файлов шрифтов для выхода из песочницы и получения расширенных прав. Уязвимость была обнаружена в системной утилите genatsdb - компоненте Apple Type Services, отвечающем за обработку и индексирование шрифтовых файлов в macOS. Сам по себе genatsdb запускается без наследования ограничений песочницы, что уже само по себе представляет потенциальную опасность.
Проблема усугубляется тем, что любой sandboxed-процесс может вызвать genatsdb с пользовательским файлом шрифта, который на самом деле является мультиформатным полиглотом, совмещающим в себе исполняемый shell-скрипт и валидный файл TrueType Font (TTF). Основная идея эксплуатации - создание файла, который одновременно читается и как скрипт оболочки, и как шрифтовый файл. Когда песочница запускает genatsdb с таким полиглотом, утилита обрабатывает его как шрифт, а затем файл остаётся исполняемым как скрипт. Это позволяет атакующему изолированному приложению записать и запустить зловредный код вне ограничений песочницы, что ведёт к полномасштабной компрометации системы. История открытия уязвимости началась с анализа профилей песочницы в macOS, собранных из системных директорий.
Обнаружилось, что genatsdb имеет разрешение на запуск процессов без ограничений песочницы, то есть sandboxed-процесс мог инициировать это исполняемое приложение с расширенными правами. Это нарушение базовых принципов безопасного программного обеспечения - передачу управления внутренним компонентам системы без надлежащей проверки. В ходе исследований было замечено, что genatsdb не проверяет контекст вызова - любой процесс, в том числе с песочницей, может напрямую запустить эту утилиту. Это снизило барьер использования уязвимости для злоумышленников. Более того, genatsdb демонстрирует удивительную толерантность к некорректным или вредоносным файлам, принимая на вход не только настоящие шрифты, но и случайные бинарные или текстовые данные.
Следующим этапом стала разработка и тестирование различных полиглотов - файлов, которые при одних условиях интерпретируются как shell-скрипты, а при других как файлы шрифтов. Это потребовало изучения, на каких смещениях внутри файла можно разместить сигнатуру TTF, чтобы не разрушить работу интерпретатора оболочки и при этом обеспечить распознавание файла genatsdb. Итогом исследования стало выяснение, что лучшие результаты достигаются при размещении шрифтовой сигнатуры примерно на 100-ом байте, после полноценного скриптового заголовка с shebang. Более глубокий анализ показал, что genatsdb принимает довольно упрощённую структуру TTF-файла - достаточно наличия основных заголовков и специальных таблиц, таких как таблица head с уникальным магическим числом, характерным для шрифтов TrueType. Это позволило создать минималистический font-сегмент внутри полиглота, который genatsdb принимал и обрабатывал без ошибок.
Сам эксплоит состоял из сжатого shell-скрипта, дополненного структурированными бинарными данными TTF, что гарантировало успешное выполнение команды вне песочницы и обход ограничений. После обработки полиглота genatsdb продолжал считать этот файл валидным и исполняемым, что давало возможность внедрять произвольный код в файловой системе пользователя и запускать его с правами, выходящими за рамки песочницы. Уязвимость CVE-2025-43330 значительно затронула концепцию безопасности macOS. Проблема крылась в архитектурном решении: запуск системного компонента без сохранения ограничений песочницы, что вкупе с отсутствием строгой валидации входных файлов открывало дверь для эскалации привилегий. Это критично, потому что почти все современные приложения на macOS используют песочницу для обеспечения безопасности, включая браузеры, почтовые клиенты и маркетинговые приложения.
Apple быстро отреагировала на инцидент: уязвимость была подтверждена, а исправления запланированы в рамках крупного обновления macOS 26, в ходе которого genatsdb был полностью удалён. Таким образом, проблема исчезла за счёт исключения уязвимого компонента, что является мощным решением на уровне архитектуры системы. Для пользователей и администраторов macOS эта история стала напоминанием о необходимости активно следить за обновлениями системы безопасности и не полагаться только на sandboxing как на единственный барьер от атак. Важно понимать ограничения песочницы и способность злоумышленников искать обходные пути в неожиданных местах, таких как обработка мультимедийных или шрифтовых файлов. Кроме того, судьба CVE-2025-43330 служит примером того, как даже технически безопасные процессы можно использовать во вред.
Применение полиглотов - файлов с двойным назначением - показывает, насколько важно внедрять строгую проверку вводимых данных, а также тщательно контролировать поведение дочерних процессов, особенно когда речь идёт о системных утилитах, запускаемых от имени операционной системы. В конечном счёте, CVE-2025-43330 напоминает специалистам по безопасности и разработчикам о принципе "безопасность по умолчанию": любые компоненты, особенно те, что обрабатывают пользовательский ввод и выполняются с повышенными правами, должны наследовать или соблюдать политики безопасности. Игнорирование этих аспектов ведёт к уязвимостям, которые злоумышленники с лёгкостью эксплуатируют. Отправленной Apple информацией о проблеме в мае 2025 года и оперативным реагированием, включая верификацию, доработку и выпуск патча, демонстрируется важность сотрудничества между исследователями безопасности и разработчиками программного обеспечения, а также прозрачность в решении подобных вопросов. Появление CVE-2025-43330 подчеркнуло, что несмотря на современные технологии защиты, всегда остаётся аспект архитектурных решений, где минимальное пренебрежение деталями способно привести к масштабным сбоям безопасности.
Такой опыт помогает компаниям совершенствовать стратегии защиты и глубже интегрировать механизмы контроля безопасности на всех уровнях операционной системы. .