В системе безопасности macOS обнаружена критическая уязвимость, позволяющая обходить механизм контроля доступа Transparency, Consent, and Control (TCC). Этот баг открывает путь к получению конфиденциальной пользовательской информации и выполнению произвольных команд AppleScript без ведома пользователя.
Детали уязвимости
Исследователи присвоили уязвимости идентификатор CVE-2025-43530. Проблема заключена в рамках доступности (accessibility framework) операционной системы, а именно в компоненте ScreenReader. Уязвимая служба MIG (Mach Interface Generator) в этом компоненте позволяет злоумышленнику выполнять несанкционированные команды AppleScript и отправлять AppleEvents защищенным процессам, минуя запросы на согласие от TCC.
Слабое звено находится в приватном API внутри ScreenReader.framework, в службе "com.apple.scrod", которая запускается из системных конфигурационных файлов. Конкретно, ошибка кроется в механизме проверки доверия, который использует служебная функция "__SCROXGetValueForKeyWithObject". Именно эта функция определяет, может ли XPC-клиент выполнять привилегированные операции.
Реализация содержит две критические проблемы, подрывающие защиту TCC. Во-первых, уязвимый код признает доверенным любой процесс, подписанный Apple. Это позволяет атакующим внедрять вредоносный (malicious) код в подписанные Apple исполняемые файлы, например, в "/usr/libexec/ssh-apple-pkcs11", не требуя привилегий root. Данная техника инъекции обходит проверку цифровой подписи, позволяя злоумышленникам маскироваться под доверенные системные процессы.
Во-вторых, служба аутентифицирует клиентов с помощью API "SecStaticCodeCreateWithPath", а не используя аудитокен (audit token) клиента. Такой подход создает окно для атаки типа "время проверки - время использования" (Time-of-Check-Time-of-Use, TOCTOU). Следовательно, злоумышленник может изменить идентификатор процесса в промежутке между моментом проверки и моментом выполнения операции.
Успешная эксплуатация уязвимости позволяет выполнять произвольные файлы AppleScript и отправлять AppleEvents любому целевому процессу, включая Finder. Это полностью обходит защиту TCC, которая в нормальных условиях блокирует несанкционированный доступ к конфиденциальным пользовательским данным, документам и системным функциям. Для атаки требуется только локальный доступ к системе без повышенных привилегий, что представляет значительный риск для многопользовательских сред.
Исследователи отмечают, что как минимум девять других служебных процедур MIG используют ту же самую уязвимую логику проверки доверия. Соответственно, потенциально могут существовать аналогичные пути эксплуатации. Среди затронутых служб значатся "__XRegisterWithServer", "__XSendEvent" и "__XPerformAction", о чем сообщил исследователь Jhftss на GitHub.
Компания Apple исправила уязвимость в обновлении macOS 26.2. Патч ограничивает доверие только тем процессам, которые явно обладают правом (entitlement) "com.apple.private.accessibility.scrod". Кроме того, обновленная процедура проверки теперь использует аудитокен клиента вместо верификации статического пути к коду. Это изменение полностью устраняет окно для TOCTOU-атаки.
Обнаружение этой уязвимости подчеркивает сложность защиты механизмов контроля конфиденциальности на уровне операционной системы. TCC является ключевым элементом безопасности macOS, поэтому его обход представляет серьезную угрозу. Эксперты рекомендуют пользователям и администраторам своевременно устанавливать все официальные обновления безопасности от Apple. Особенное внимание следует уделить системам, к которым имеют доступ несколько пользователей, так как уязвимость может быть использована для эскалации привилегий в локальной сессии.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2025-43530
- https://jhftss.github.io/CVE-2025-43530/
- https://support.apple.com/en-us/125885
- https://support.apple.com/en-us/125888
- https://support.apple.com/en-us/125887
- https://support.apple.com/en-us/125886