Известный macOS-исследователь Говард Оукли (Howard Oakley) из блога The Eclectic Light Company продемонстрировал неприятную особенность системы приватности macOS: приложение может сохранить доступ к защищённым папкам вроде Documents, даже если пользователь явно отключил этот доступ в настройках Privacy & Security. При этом интерфейс настроек продолжает показывать, что доступ заблокирован.

Что произошло

Оукли написал тестовое приложение Insent и показал пошаговый сценарий на macOS Tahoe 26.4, который воспроизводится начиная с macOS 13.5 Ventura. Суть проблемы — в том, как взаимодействуют два механизма доступа: consent (согласие пользователя через системный диалог) и intent (намерение, выраженное через стандартную панель Open and Save).

⚠ В чём проблема
Если приложение сначала получило доступ к папке через consent, затем пользователь отключил доступ в настройках, а потом выбрал ту же папку через стандартный диалог открытия файлов — приложение навсегда получает доступ к этой папке. Настройки Privacy & Security при этом показывают, что доступ запрещён.

Как это работает

За защиту приватных папок в macOS отвечает система TCC (Transparency, Consent, and Control). Она работает в паре с sandboxd — демоном песочницы, который перехватывает обращения приложений к защищённым директориям.

Когда приложение обращается к папке Documents напрямую, sandboxd перехватывает запрос и спрашивает TCC: есть ли разрешение? Если нет — показывает пользователю диалог.

Но когда пользователь сам выбирает папку через стандартную панель Open and Save Panel, система расценивает это как выражение намерения (intent). В этом случае sandboxd снимает ограничение песочницы для этой папки, и TCC больше не участвует в процессе.


graph TD
    A[Приложение запрашивает доступ к Documents] --> B{Как запрошен доступ?}
    B -->|Прямой вызов File Manager| C[sandboxd перехватывает]
    C --> D{TCC: есть разрешение?}
    D -->|Да| E[✅ Доступ разрешён]
    D -->|Нет| F[🔒 Показать диалог consent]
    B -->|Через Open/Save Panel| G[sandboxd НЕ перехватывает]
    G --> H[✅ Доступ разрешён без проверки TCC]
    H --> I[⚠️ Ограничение песочницы снято навсегда]

Шаги воспроизведения

  1. Приложение запрашивает доступ к Documents → пользователь соглашается
  2. Пользователь отключает доступ в Privacy & Security → Files & Folders
  3. Прямой доступ заблокирован — всё работает корректно
  4. Пользователь выбирает Documents через стандартный диалог Open/Save
  5. Приложение снова получает полный доступ к Documents
  6. Настройки продолжают показывать, что доступ отключён
ℹ Единственный способ сбросить доступ

Вернуть настройки к исходному состоянию можно только через терминал:

tccutil reset All co.eclecticlight.Insent

После этого нужно перезагрузить Mac. Переключатель в настройках Privacy & Security не поможет.

Почему это важно

АспектДетали
Затронутые версииmacOS 13.5 Ventura и новее, включая macOS 26.4 Tahoe
Тип проблемыРассогласование интерфейса настроек и реального поведения системы
Вектор атакиПриложение должно побудить пользователя выбрать папку через Open/Save Panel
Сложность эксплуатацииСредняя — требуется взаимодействие с пользователем
Исправление от AppleПока отсутствует

Проблема не является классической уязвимостью с удалённым исполнением кода. Но она подрывает доверие к интерфейсу настроек приватности — пользователь видит одно, а система делает другое. Для security-модели macOS, которая строится на прозрачности и контроле пользователя, это серьёзный изъян.

Самое тревожное — постоянство полученного доступа. Единственный способ отозвать его — команда в терминале и перезагрузка. Трудно поверить, что такое поведение было задумано, — но оно существует.

💡 Что делать пользователям
— Будьте внимательны, когда приложение просит выбрать папку через стандартный диалог открытия, особенно если вы уже ограничили ему доступ. — Если подозреваете нежелательный доступ, используйте tccutil reset в терминале для сброса разрешений конкретного приложения. — Следите за обновлениями macOS — Apple может исправить эту проблему в будущих версиях.

Исследование Оукли — часть серии публикаций о механизмах приватности macOS. Ранее он подробно разбирал разницу между Files & Folders и Full Disk Access, а также логику работы consent и intent в TCC. Остаётся ждать реакции Apple и возможного патча.