Когда 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 июля 2026 | Bynario публикует исследование 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) - протокол, позволяющий доказать знание пароля без передачи по сети. Штатный поток:- RFB-подключение, согласование security type
- Обмен SRP-параметрами между клиентом и сервером
- Клиент вычисляет proof, сервер валидирует
SecurityResult = 0→ сессия аутентифицирована, канал зашифрован
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 - предыдущее успешное состояние вместо корректного сброса:- Malformed SRP-фрейм → validator не обнуляет предыдущий результат
- screensharingd интерпретирует stale success как прохождение аутентификации
SecurityResult = 0отправляется клиенту- Соединение продолжается без криптографической защиты - cleartext session
По данным 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: патч и митигация
- Патч. 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) включает требования по своевременному обновлению критических компонентов
- Отключить Screen Sharing: System Settings → General → Sharing → Screen Sharing Off. Проверить также Remote Management на той же странице
- Закрыть TCP/5900 на файрволе. Не пробрасывать через NAT. Для удалённого управления - SSH-туннель или VPN
- Forensic-проверка хостов, доступных по 5900 до патча. Патч предотвращает будущую эксплуатацию, но не удаляет уже залитый вредоносный код
- Полная переустановка при подтверждённой компрометации. Root-доступ позволяет установить дополнительные backdoor, которые переживут простое удаление майнера. Ротация всех credentials, SSH-ключей и секретов с этого хоста - обязательна
На внешних пентестах с 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.