Извлечённая логическая плата Mac mini на антистатическом коврике, на радиаторе лазером выгравирована надпись CVE-2026-65400 pre-auth RCE. Щуп зонда касается обугленной дорожки SRP-проверки под свет...


Когда 6 августа 2026 года Apple выпустила патч для screensharingd, я загрузил обе версии бинарника в Ghidra - стандартная процедура после нескольких лет реверса Apple-демонов. Diff показал правку в обработке SRP-фреймов: исправленный валидатор длины больше не возвращал stale success при некорректном вводе. Параллельно ребята из Calif проделали тот же путь за четыре часа и собрали рабочий proof of concept. К 12 августа NCSC Нидерландов подтвердил: CVE-2026-65400 уже эксплуатируется в дикой природе - на скомпрометированных Mac стоят майнеры Monero. CISA добавила уязвимость в каталог KEV 18 августа с дедлайном три дня.

CVSS 9.8 Critical, EPSS в top 5% всех CVE (percentile 95.3%), pre-auth вектор без взаимодействия с пользователем. Разберём, как это работает - от первого SYN-пакета до reverse shell от root.

Бизнес-логика атаки: зачем злоумышленнику Screen Sharing на macOS​

Screensharingd - демон macOS, работающий от root. Его компрометация даёт атакующему не просто доступ к экрану, а привилегированную точку входа с Full Disk Access. В подтверждённых инцидентах ставили XMRig для добычи Monero - криптовалюту, чей алгоритм RandomX оптимизирован под обычные CPU без специализированного оборудования. Любой Mac - рабочая станция разработчика, hosted Mac mini в дата-центре - генерирует монетизируемую вычислительную мощность.

Но криптоджекинг - лишь самый заметный payload. Root-доступ через pre-auth вектор (Exploit Public-Facing Application, T1190 по MITRE ATT&CK, тактика Initial Access) открывает путь к краже SSH-ключей, облачных credentials, VPN-конфигураций и lateral movement в корпоративной сети. Monero-майнер - монетизация «по умолчанию», когда атакующий ещё не решил, что делать с доступом. По данным Resecurity, на подпольном форуме всплыл список из ~24 000 хостов с TCP/5900. Доступ продаётся и перепродаётся.

Две CVE в одном демоне: post-auth vs pre-auth​

История CVE-2026-65400 переплетена с другой уязвимостью - CVE-2026-43760 - и путаница между ними до сих пор гуляет по русскоязычным публикациям. Ни один RU-конкурент эту разницу не объясняет, так что разложим.

CVE-2026-43760 (CVSS 8.6, CWE-284: Improper Access Control) обнаружена Альфредо Песоли из Bynario. По данным Huntress, при анализе использовался ChatGPT для реверса бинарника - сам по себе любопытный кейс AI-assisted vulnerability research. Это post-auth уязвимость: атакующий должен знать пароль legacy VNC-аутентификации. После входа возникает confused-context condition - хелпер SSFileCopySender выполняется от root вместо контекста конкретного пользователя. Результат: чтение и запись произвольных файлов с root-привилегиями. Apple закрыла её в macOS Tahoe 26.6 и Sonoma 14.8.8. CISA присвоила статус SSVC «Track*» - PoC есть, technical impact partial.

CVE-2026-65400 (CVSS 9.8, CWE-287: Improper Authentication) - pre-auth уязвимость, обнаруженная Osxreverser (Pedro Vilaça, aka fG!). Пароль не нужен. Вектор CVSS: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - сетевая атака, низкая сложность, привилегии не требуются, действие пользователя не требуется, максимальный ущерб по всем трём параметрам. Apple закрыла в macOS Tahoe 26.6.1, Sequoia 15.7.9, Sonoma 14.8.9. CISA: SSVC «Act» - active exploitation, automatable, total technical impact.

Нюанс, который ускользнул от русскоязычных публикаций: Apple в advisory к патчу 26.6.1 поблагодарила Bynario - компанию, нашедшую другую уязвимость. Osxreverser не сообщал о pre-auth баге Apple напрямую, а опубликовал обфусцированный PoC-бинарник после выхода исследования Bynario. Хронология сжатия окна эксплуатации:

ДатаСобытие
29 июля 2026Bynario публикует исследование CVE-2026-43760 (post-auth)
6 августаApple выпускает патчи, закрывающие обе CVE
8 августаOsxreverser оценивает ~40 000 уязвимых хостов в интернете
12 августаNCSC-NL подтверждает активную эксплуатацию, публичный PoC
18 августаCISA добавляет в KEV с дедлайном 21 августа (BOD 26-04)

От патча до рабочего эксплойта - четыре часа. От патча до подтверждённых атак - шесть дней. Окно закрывается быстрее, чем большинство организаций успевают прочитать advisory.

Root cause: слом state machine в SRP-аутентификации screensharingd​

Нормальный поток аутентификации Screen Sharing​

Screen Sharing использует Apple-специфичный вариант RFB/VNC протокола поверх TCP/5900. Для native Apple-аутентификации применяется SRP (Secure Remote Password) - протокол, позволяющий доказать знание пароля без передачи по сети. Штатный поток:
  1. RFB-подключение, согласование security type
  2. Обмен SRP-параметрами между клиентом и сервером
  3. Клиент вычисляет proof, сервер валидирует
  4. SecurityResult = 0 → сессия аутентифицирована, канал зашифрован
Параллельно существует legacy VNC path - единый пароль без привязки к учётной записи macOS. При legacy-аутентификации хелперы SSFileCopySender и SSFileCopyReceiver работают от root, а не от контекста пользователя. Это архитектурное решение Apple, и оно усиливает impact любой уязвимости в аутентификации.

Критический момент для понимания RCE-потенциала: SSFileCopySender несёт entitlement kTCCServiceSystemPolicyAllFiles - Full Disk Access и обход TCC (Transparency, Consent, and Control). Файловые операции Screen Sharing читают даже защищённые директории без запроса пользователю. При этом SSFileCopyReceiver такого entitlement не имеет, что ограничивает вектор записи.

Где ломается: stale success в валидаторе длины фрейма​

По данным независимого реверс-инжиниринга (Resecurity, Huntress), уязвимый путь в screensharingd затрагивает валидацию длины SRP-фрейма. При получении malformed SRP-input валидатор ошибочно сохраняет stale success - предыдущее успешное состояние вместо корректного сброса:
  1. Malformed SRP-фрейм → validator не обнуляет предыдущий результат
  2. screensharingd интерпретирует stale success как прохождение аутентификации
  3. SecurityResult = 0 отправляется клиенту
  4. Соединение продолжается без криптографической защиты - cleartext session
Это не взлом SRP-криптографии как таковой. Ошибка в обвязке - имплементации state machine, которая не обеспечивает атомарную связь между результатом валидации и состоянием сессии. Apple описала фикс как «improved state management» - по сути, корректный сброс состояния при любом отклонении от штатного SRP-обмена. Классическая ситуация: криптография правильная, а код вокруг неё - нет.

По данным Huntress, настройки Screen Sharing - список разрешённых пользователей, наличие VNC-пароля - не влияют на успешность эксплуатации CVE-2026-65400. Баг работает независимо от конфигурации доступа.

Attack chain: от fingerprinting до root shell​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

, затем содержимое файла - например, /etc/master.passwd.

PoC использует retry-механизм (до 50 попыток с увеличенным таймаутом), потому что эксплуатация race condition-зависима. На патченных системах PoC получает SecurityResult != 0 или SRP type не объявляется.

Post-exploitation: от чтения файлов к удалённому выполнению кода​

Read-only примитив критичен сам по себе: чтение /etc/master.passwd, SSH-ключей, keychain-файлов, облачных credentials. Но удалённое выполнение кода macOS требует записи. По данным Huntress, рабочих векторов несколько.

LaunchDaemon - создание plist в /Library/LaunchDaemons/ с reverse shell payload. Директория доступна для записи от root и не защищена TCC. Требуется перезагрузка для активации. В подтверждённых атаках NCSC-NL фиксировала plist-файлы com.xmr.miner.plist и com.navi.*.plist - прямое проявление тактики Resource Hijacking (T1496 по MITRE ATT&CK).

Shell startup file - модификация .zshenv пользователя. Срабатывает при следующем открытии Terminal.app. Более скрытный вектор, не требует перезагрузки - для серверных Mac mini с редкими рестартами это предпочтительнее.

cron job - запись в /var/at/tabs/root. По данным Huntress, этот вектор не работает на системах с включённым SIP (System Integrity Protection): SSFileCopyReceiver не имеет entitlement для обхода TCC в этой директории.

Когда техника НЕ работает​

  • Патченные версии: macOS Tahoe 26.6.1+, Sequoia 15.7.9+, Sonoma 14.8.9+ - state machine исправлена
  • Screen Sharing выключен: сервис отключён по умолчанию, screensharingd не слушает порт 5900 - атаковать нечего
  • Файрвол блокирует TCP/5900: аппаратный или программный файрвол полностью предотвращает remote exploitation; хост уязвим только для атакующего во внутренней сети
  • SIP включён (по умолчанию): ограничивает вектор cron job; LaunchDaemon и .zshenv по-прежнему работают
  • Неподдерживаемые macOS (Ventura и старше): патч не выпущен, системы потенциально уязвимы, но PoC может потребовать адаптации под другую версию RFB
  • SSH-туннель или VPN вместо прямого проброса 5900: убирает хост из зоны досягаемости внешнего атакующего

IOC и детектирование криптомайнера macOS​

Артефакты на диске и в процессах​

По данным macminivault и NCSC-NL, подтверждённые индикаторы компрометации:
  • Процесс sysmond с аномально высокой CPU-нагрузкой (сотни процентов). Настоящий sysmond - системный демон мониторинга; вредоносный бинарник маскируется под него
  • Скрытые файлы в /private/var/root/.config/ - бинарник майнера и лог-файлы
  • LaunchDaemons: com.xmr.miner.plist, com.navi.*.plist в /Library/LaunchDaemons/
  • pf-правило, блокирующее порт 5900 от всех кроме 127.0.0.1 - атакующий «закрывает дверь» за собой, чтобы конкуренты не воспользовались той же уязвимостью. Это не стандартный hardening, а маркер компрометации
Bash:
# Подозрительные LaunchDaemons
ls -la /Library/LaunchDaemons/ | grep -E "xmr|navi|miner"
# pf-правила - блокировка 5900 кроме loopback = красный флаг
sudo pfctl -sr | grep 5900
# Скрытые файлы в домашней директории root
sudo ls -la /private/var/root/.config/
# Процессы с высокой CPU-нагрузкой
ps aux | sort -nrk 3 | head -10

Сетевые индикаторы​

Исходящие DNS-запросы и TCP-соединения к доменам с c3pool - прямой маркер XMRig mining pool. Мониторинг netflow на нестандартные исходящие подключения от macOS-хостов - базовая сетевая детекция криптоджекинга.

Endpoint Security events​

Начиная с macOS 13, Apple предоставляет события ES_EVENT_TYPE_NOTIFY_SCREENSHARING_ATTACH и _DETACH через C API Endpoint Security. EDR-решения, подписанные на этот event type через eslogger, детектируют аномальные Screen Sharing сессии. По данным Huntress, при успешной эксплуатации CVE-2026-65400 генерируется ATTACH-event - но только если агент установлен на хосте до момента компрометации.

Защита от RCE атак macOS: патч и митигация​

  1. Патч. macOS Tahoe 26.6.1, Sequoia 15.7.9, Sonoma 14.8.9. Дедлайн CISA BOD 26-04 - 21 августа 2026 года. DISA STIG для Apple macOS 14 (Sonoma) включает требования по своевременному обновлению критических компонентов
  2. Отключить Screen Sharing: System Settings → General → Sharing → Screen Sharing Off. Проверить также Remote Management на той же странице
  3. Закрыть TCP/5900 на файрволе. Не пробрасывать через NAT. Для удалённого управления - SSH-туннель или VPN
  4. Forensic-проверка хостов, доступных по 5900 до патча. Патч предотвращает будущую эксплуатацию, но не удаляет уже залитый вредоносный код
  5. Полная переустановка при подтверждённой компрометации. Root-доступ позволяет установить дополнительные backdoor, которые переживут простое удаление майнера. Ротация всех credentials, SSH-ключей и секретов с этого хоста - обязательна
По данным IBM X-Force, между публикацией CVE и реальным устранением в организациях проходит в среднем 29 месяцев. Здесь CISA дала три дня. Для hosted bare-metal Mac, где провайдер не управляет ОС клиента, эти три дня - фантастика.

На внешних пентестах с macOS-сегментом я раз за разом вижу одно и то же: Screen Sharing включён «для удобства», порт проброшен через NAT, файрвол не настроен. Каждый раз.

Меня больше беспокоит не конкретная дыра - SRP state machine баги исправляются одним патчем. Беспокоит архитектура: screensharingd работает от root с Full Disk Access через SSFileCopySender, и это by design. Даже после патча демон остаётся лакомой целью - тот же привилегированный процесс, тот же протокол, те же entitlements. Apple заткнула дыру, но не пересмотрела архитектуру. Следующий CVE в screensharingd - вопрос времени. Если хочется посмотреть, как auth bypass ломает macOS на живом стенде - лаба macOS exploitation на HackerLab.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab