
Воспроизводимые лабораторные PoC для macOS automountd и анализ на основе исходного кода для CVE-2026-84568 (обход пути через fstype до выполнения кода с правами root) и CVE-2026-84570 (обход Gatekeeper).
Публичный анализ CVE-2026-84568 и CVE-2026-84570 на основе исходного кода, с обратимыми доказательствами для ввода LDAP/OD, доставки через NFS, диспетчеризации helper-процессов, поведения Gatekeeper и границы device-node.
Статус публикации — октябрь 2026 г. Apple исправила обе уязвимости 14 сентября 2026 г. в macOS Sequoia 15.8, macOS Tahoe 26.7 и macOS Golden Gate 27. Репроducer в этом репозитории предназначен только для изолированной авторизованной лаборатории, содержащей намеренно неисправленный Mac.
Статус валидации. Включённые в комплект валидаторы на хосте были успешно запущены на затронутом лабораторном хосте macOS 26.4 (сборка 25E246, arm64). Тест диспетчеризации helper-процессов, полная цепочка доставки через loopback NFS, проверка pathname/credential, дифференциальный тест Gatekeeper и тест границы nodev/устройств — все вернули PASS. В тесте Gatekeeper оценки были включены; приложение было структурно валидным, но подписано ad-hoc без Team ID; явная оценка spctl отклонила его; NFS-монтирование не имело ни noexec, ни карантина; и LaunchServices запустил его без шага одобрения. Каждый валидатор также вернул cleanup_result=PASS, а независимая проверка после запуска подтвердила, что записи временных каталогов, монтирования, файлы и изменения /etc/exports были удалены или восстановлены. Python-обвязка была отдельно проверена на временном сервере OpenLDAP с реальной схемой атрибутов automount/Apple: оба маршрута — automountKey и apple-user-homeurl — прошли проверки создания/чтения/тайм-аута/восстановления. Эти наблюдения характеризуют именно ту затронутую сборку и включённую обвязку; они не являются утверждениями об исправленных выпусках.
Благодарность исследователю: Mr.Gedik (@h4ck2s3c); CVE-2026-84568 публично приписан Mr.Gedik, а CVE-2026-84570 — Mr.Gedik, в бюллетенях Apple.
Это публичная версия исследования. Она содержит только информацию, подтверждённую опубликованными бюллетенями Apple, открытым исходным кодом Apple и включёнными воспроизводимыми лабораторными материалами. Частные идентификаторы дел, частная переписка, непубличные артефакты и не связанные с темой исследования намеренно исключены.
Две CVE имеют общую поверхность атаки, но представляют независимые первопричины:
| CVE | Опубликованное Apple воздействие | Клиентская граница |
|---|---|---|
| CVE-2026-84568 | Атакующий сетевого каталога может выполнить произвольный код с привилегиями root | Управляемый каталогом fstype влиял на исполняемый путь, выбираемый automountd |
| CVE-2026-84570 | Приложение может обойти проверки Gatekeeper | Управляемый каталогом NFS automount пересёк как границу происхождения приложения, так и границу политики device-node |
Apple перечисляет обе проблемы в разделе autofs в описании безопасности для macOS Golden Gate 27, macOS Tahoe 26.7 и macOS Sequoia 15.8.
Карты automount в macOS — это исполняемые управляющие данные. Строка карты выбирает тип файловой системы, задаёт параметры монтирования, определяет ресурс и в конечном счёте влияет на привилегированную диспетчеризацию монтирования. До обновлений сентября 2026 г. два сбоя валидации позволяли данным, предоставленным каталогом, пересекать границы безопасности на клиенте:
fstype мог выйти за пределы предполагаемого пространства имён helper-процессов /sbin/mount_<type> и разрешиться в исполняемый файл, доставленный через NFS.nodev. Полученное сетевое монтирование также не имело политики noexec или карантина, поэтому приложение, не прошедшее явную оценку Gatekeeper, всё равно могло быть запущено с него.Это связанные наблюдения, а не взаимозаменяемые механизмы. nodev управляет тем, интерпретируются ли vnode специальных устройств; он не реализует Gatekeeper. noexec управляет исполнением на границе VFS. Gatekeeper отдельно оценивает доверие и происхождение приложения. Валидатор CVE-2026-84570 сообщает о каждой границе независимо, чтобы отсутствующий флаг nodev никогда не представлялся сам по себе как доказательство обхода Gatekeeper.
Права на запись в каталог — это лишь предварительное условие для входа, а не итоговые полномочия. Изменение атрибута automount или домашнего каталога пользователя не эквивалентно выбору исполняемого пути на каждом потребляющем Mac или ослаблению политики ядра для NFS-монтирования. Эти преобразования происходят на клиенте.
stat() от непривилегированной учётной записи вернул ENOTDIR; следовательно, результат непривилегированных realpath() или stat() здесь не является корректным прокси для automountd.nodev, продемонстрированного для CVE-2026-84570. Полная цепочка 84568 сработала, хотя её монтирование доставки сохраняло nodev и nosuid.Конфигурация automount по умолчанию предоставляет входы на основе каталогов ниже /home:
/etc/auto_master: /home auto_home -nobrowse,hidefromfinder
/etc/auto_home: +auto_home
/etc/auto_home: +/usr/libexec/od_user_homes
Первое включение разрешает записи automount. Включение executable-map вызывает od_user_homes, который разрешает информацию о домашнем каталоге пользователя и выдаёт строку карты. Оба маршрута сходятся на парсере automount.
Публичный harness явно сохраняет обе формы каталога:
| Маршрут | Входные данные каталога | Результирующий ключ/значение autofs |
|---|---|---|
automount | Запись RFC 2307, RDN которой — automountKey=<key> под картой automountMapName=auto_home; значение в automountInformation | <key> → необработанная строка карты |
userhome | Существующая запись пользователя; значение в apple-user-homeurl | ключ записи пользователя → строка карты, обёрнутая в <home_dir><url>…</url></home_dir> |
Это различие важно с операционной точки зрения, но не на уязвимом стоке: оба значения в конечном итоге влияют на разобранный тип файловой системы и аргументы монтирования на Mac.