Сергей Попов

Администратор
30.12.2015
6 269
6 981
Специализация
  1. OSINT
  2. Веб-безопасность
Статус верификации
  1. ✓ Verified
Вид сверху на тёмный стол криминалистической лаборатории: разобранный корпус шлюза Ivanti Sentry с открытой платой, рука в перчатке подносит зонд к чипу контроллера аутентификации. На соседнем мони...


9 июня 2026 года Ivanti выпустила advisory по двум критическим уязвимостям в Sentry. Через двое суток CISA внесла CVE-2026-10520 (OS Command Injection, CVSS 10.0) в каталог KEV с дедлайном на патч в три дня - до 14 июня. Вся индустрия бросилась закрывать command injection с максимальным баллом. А CVE-2026-10523 с CVSS 9.9 - auth bypass, через который можно создать произвольный админский аккаунт в Sentry, - осталась в тени.

И вот тут интересно. С точки зрения атакующего, приоритеты ровно обратные: тихое создание легитимной админской учётки даёт устойчивую персистенцию, которую не видит ни IDS, ни стандартный threat hunting. Разовая команда с правами root - громкая. Админский аккаунт, созданный через альтернативный API-путь, - нет. SOC ищет шеллы, а бэкдор сидит в базе пользователей.

Бизнес-логика: зачем атакующему Ivanti Sentry и захват mobile gateway устройств​

Ivanti Sentry (бывший MobileIron Sentry) - inline-шлюз между корпоративным мобильным парком и внутренними ресурсами: Microsoft Exchange, SharePoint, внутренние API. Sentry рулит ActiveSync-трафиком, шифрует канал между устройствами и бэкендом, а совместно с Ivanti EPMM решает, кого пускать - только зарегистрированные и policy-compliant устройства получают доступ к корпоративным сервисам. Подробнее - в нашем статье о cve эксплойт разработка.

Компрометация Sentry - не просто один взломанный сервер. Это контроль над всем мобильным трафиком организации: email, вложения, данные MDM-профилей, корпоративные приложения. Атакующий получает возможность модифицировать политики доступа, создавать бэкдор-аккаунты - Valid Accounts (T1078, Initial Access / Persistence / Privilege Escalation) - и использовать Sentry как pivot-точку для lateral movement во внутренние сервисы через Exploitation of Remote Services (T1210). Одна скомпрометированная Sentry-нода в крупной организации - доступ к трафику тысяч мобильных устройств.

А CVE-2023-38035 - предыдущий auth bypass в Sentry - уже в CISA KEV с пометкой RANSOMWARE, эксплуатируется в дикой природе с августа 2023 года. Паттерн повторяется.

Анатомия CVE-2026-10523: обход аутентификации Ivanti Sentry через CWE-288​

CVE-2026-10523 классифицирована как CWE-288 - Authentication Bypass Using an Alternate Path or Channel. Определение MITRE CWE: «The product requires authentication, but the product has an alternate path or channel that does not require authentication». Тут нет ни брутфорса, ни SQL-инъекции в форму логина. CWE-288 - это когда в архитектуре приложения есть альтернативный маршрут к защищённой функциональности, который просто не проверяет, кто ты такой.

По данным NVD, уязвимость позволяет удалённому атакующему создавать произвольные административные учётные записи и получать полный административный доступ к Ivanti Sentry. Затрагивает Ivanti Standalone Sentry версий до R10.5.2, R10.6.2 и R10.7.1.

Вектор CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - разберём каждый компонент:

КомпонентЗначениеИнтерпретация
AV:NNetworkЭксплуатация по сети, без физического доступа
AC:LLowСложных условий для атаки не требуется
PR:LLowНужен минимальный уровень привилегий
UI:NNoneДействия пользователя не требуются
S:CChangedИмпакт выходит за пределы уязвимого компонента
C:H/I:H/A:HHighПолная компрометация конфиденциальности, целостности и доступности

Тут есть нюанс, на который стоит обратить внимание: описание CVE говорит об «unauthenticated attacker», но CVSS-вектор указывает PR:L (Low Privileges Required). Расхождение между текстом advisory и вектором. Вероятная интерпретация в контексте CWE-288: атакующему нужен некий минимальный контекст (доступ к определённому API-эндпоинту, базовый сессионный токен), но не полноценная административная аутентификация. Именно поэтому CISA SSVC указывает Automatable: no - в отличие от CVE-2026-10520 (Automatable: yes, PR:N).

Где живёт уязвимый код и предусловия эксплуатации​

Ivanti Sentry - Java-приложение на Tomcat. Приложение сидит под контекстным путём /mics (EPMM использует /mifs). Админский интерфейс доступен по /mics/login.jsp.

[Технические детали ниже - гипотетическая реконструкция, не подтверждённая вендором или NVD.] Предположительно, уязвимый код связан с API-эндпоинтами обработки конфигурационных сообщений. Точный класс, метод и параметры эксплуатации официально не раскрыты. Оба CVE (10520 и 10523) исправлены в одном релизе. Логика CWE-288 подсказывает вероятный вектор CVE-2026-10523: альтернативный API-путь к административным функциям (создание учёток, управление конфигурацией), обходящий стандартную аутентификацию через /mics/login.jsp.

Работает если:
  • Ivanti Standalone Sentry версий до R10.5.2, R10.6.2 или R10.7.1
  • Административный интерфейс Sentry доступен по сети (порт 8443 или настроенный порт)
  • Sentry в unmanaged state или эндпоинты доступны извне
Не работает если:
  • Установлены патчи R10.5.2 / R10.6.2 / R10.7.1
  • Используется mTLS между Sentry и EPMM - взаимная аутентификация блокирует неавторизованные API-вызовы
  • HTTPS-доступ к Sentry ограничен firewall-правилами или VPN
  • Административный порт изолирован от атакуемого сетевого сегмента
CISA в описании CVE-2026-10520 прямо указывает: уязвимость эксплуатируется «in cases where the Sentry appliance is in an unmanaged state with its endpoints externally reachable. The use of mTLS with EPMM or restricted HTTPS access» снижает риск. Те же предусловия применимы к CVE-2026-10523.

Цепочка атаки: от Ivanti Sentry auth bypass до root через связку с command injection​

CVE-2026-10523 сама по себе даёт создание админских аккаунтов. Серьёзно, но полный импакт раскрывается в связке с CVE-2026-10520 (OS Command Injection, CVSS 10.0, CWE-78):
  1. Initial Access - Exploit Public-Facing Application (T1190): атакующий обнаруживает Sentry на периметре - порт 8443, характерный интерфейс /mics/login.jsp
  2. Auth Bypass (CVE-2026-10523): через альтернативный API-путь создаётся административная учётная запись. Тише, чем прямая эксплуатация pre-auth RCE
  3. Persistence - Valid Accounts (T1078): созданный аккаунт - легитимная админская учётка, переживает перезагрузку, не палится как типичный web shell
  4. Command Injection (CVE-2026-10520): через административный доступ к handleMessage атакующий отправляет payload с командой ОС. Метод разбирает строку и при значении command = execute передаёт value на обработку
  5. Root RCE: команда исполняется с правами root - полный контроль над Sentry-нодой
  6. Lateral Movement (T1210): с позиции Sentry атакующий видит внутренние сервисы (Exchange, EPMM), может модифицировать MDM-политики и перенаправлять трафик устройств
Зачем цепочка, если CVE-2026-10520 работает без аутентификации (PR:N)? Ответ - операционная скрытность. Pre-auth command injection (CVSS 10.0, EPSS 0.999, Automatable: yes) - первое, что будут искать IDS-правила и threat hunters. Аутентифицированный запрос к admin-API от легитимного аккаунта - штатный трафик, который проходит большинство сигнатурных правил. В реальных проектах я бы выбрал именно эту цепочку - зачем шуметь, если можно зайти через парадный вход?

Контекст применения​

[Применимо: внешний пентест, при доступности порта 8443 Sentry из интернета]

На внешнем пентесте Sentry - одна из первых целей при обнаружении Ivanti-инфраструктуры на периметре. Fingerprinting через /mics/login.jsp идентифицирует продукт за секунды.

[Применимо: внутренний пентест, при сетевом доступе к management-сегменту]

На внутреннем пентесте Sentry может оказаться в management VLAN. Auth bypass + command injection дают pivot-точку для атаки на мобильную инфраструктуру и доступ к credentials (Credentials In Files, T1552.001) - конфигурационные файлы Sentry содержат параметры подключения к EPMM и backend-сервисам.

Разведка и воспроизведение: практический подход к эксплуатации Ivanti Sentry​

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

Ответ 400 с телом "Message is empty or null" - эндпоинт доступен. Ответ 401/403 - аутентификация работает (патч применён или эндпоинт защищён). Ответ 200 с "Message handled successfully" - эндпоинт обрабатывает input без аутентификации. Бинго.

Шаг 4: Burp Suite. В Proxy перехватываем запросы к /mics/. В Repeater модифицируем POST-запросы к handleMessage, варьируя параметр message. В Intruder фаззим paths под /mics/api/ и /mics/services/ общими списками admin/API-эндпоинтов (SecLists, FFUF wordlists) и Sentry-специфичных путей (/mics/services/configservice/, /mics/services/MICSLogService). Цель - найти эндпоинты, возвращающие 200 без аутентификационных заголовков: это и есть «alternate path» из CWE-288.

Шаг 5: верификация. При обнаружении alternate path - проверяем возможность вызова административных функций (создание учётки, чтение конфигурации) без стандартного session cookie. Каждый шаг документируем для отчёта.

Детектирование уязвимости Ivanti Sentry auth bypass​

Сетевое детектирование строится на мониторинге запросов к API-эндпоинтам Sentry. Исторически (включая CVE-2023-38035) отслеживали POST-запросы к административным API-путям Sentry (/mics/services/[I], /mics/api/[/I]) со статусом 200. Для CVE-2026-10523 и CVE-2026-10520 добавляем путь /mics/api/v2/sentry/mics-config/handleMessage.
Код:
# Пример для демонстрации концепции - адаптируйте под свой SIEM
index=web sourcetype=proxy OR sourcetype=waf
| where match(url, "/mics/(api/v2/sentry|services)")
  AND status=200 AND http_method="POST"
| stats count by src_ip, url, user_agent
| where count > 3
Дополнительные индикаторы компрометации:
  • Появление новых административных учётных записей в Sentry (прямой артефакт CVE-2026-10523)
  • POST-запросы к /mics/api/v2/sentry/mics-config/handleMessage с нехарактерным user-agent или из нетипичных подсетей
  • Обращения к admin-API с IP-адресов вне management-подсети
  • Запросы к External Remote Services (T1133) - Sentry как внешне доступный сервис должен мониториться отдельно

Когда детектирование не работает​

Ограничение 1: уничтожение логов. Если атакующий уже получил root через CVE-2026-10520, он спокойно подчистит логи Sentry. Собственно, именно так и делают - сначала root, потом зачистка следов.

Ограничение 2: обход сигнатурных правил. WAF-правила на основе URL-путей обходятся через path normalization на Tomcat - двойное URL-кодирование, добавление /./ в путь, нестандартные HTTP-методы. Tomcat исторически допускает вариации нормализации, и это боль для всех, кто пишет WAF-правила под Java-приложения.

Ограничение 3: шум. Детектирование auth bypass на основе URL-путей генерирует массу false positive - без baseline обращений к admin-API и белых списков IP правило будет срабатывать на каждый легитимный запрос от EPMM. Аналогичный риск сохраняется для любых сетевых правил по CVE-2026-10523.

Паттерн Ivanti: CVE-2023-38035 и повторяющаяся CVSS 9.9 уязвимость Ivanti​

CVE-2026-10523 - не первый auth bypass в Ivanti Sentry. CVE-2023-38035 (CVSS 9.8, CWE-863 - Incorrect Authorization) позволяла обходить аутентификацию MICS Admin Portal из-за недостаточно ограничительной конфигурации Apache HTTPD. Добавлена в CISA KEV 22 августа 2023 года с пометкой RANSOMWARE - эксплуатируется в реальных атаках с шифрованием данных. По данным EPSS, вероятность эксплуатации CVE-2023-38035 в 30-дневном окне - 0.9995 (percentile 99.97%).

Параллельно с Sentry, Ivanti EPMM тоже получил два CVE: CVE-2026-6973 (Improper Input Validation, CVSS 7.2) - уже в CISA KEV как actively exploited - и CVE-2026-10727 (OS Command Injection, CVSS 7.2). Итого: четыре критических CVE в двух связанных продуктах (Sentry + EPMM) за один advisory cycle. Для одного вендора - многовато.

EPSS-скоринг подтверждает приоритеты:

CVECVSSEPSSPercentileCISA KEVAutomatable
CVE-2026-1052010.00.999099.97%Да, actively exploitedДа
CVE-2026-105239.90.518798.86%НетНет
CVE-2023-380359.80.999599.97%Да, RANSOMWAREДа
CVE-2026-69737.20.344598.27%Да, actively exploitedНет

Паттерн: Ivanti Sentry систематически страдает от проблем аутентификации в administrative API. В 2023 - недостаточно ограничительная конфигурация Apache (CWE-863). В 2026 - альтернативный путь, обходящий аутентификацию (CWE-288). Архитектурно разные CWE, но корневая причина общая: административные API-эндпоинты Sentry не изолированы от неаутентифицированного доступа. Три критических CVE (два auth bypass и один command injection, эксплуатируемый через тот же административный API) за три года в одном компоненте (MICS admin API) - устойчивый паттерн, который вряд ли исчерпал себя.

Три критических auth bypass за три года в одном продукте - и индустрия каждый раз реагирует одинаково: CISA ставит дедлайн, вендор выпускает патч, все бегут обновляться. А через полгода на Shodan висят те же непатченные Sentry на порту 8443.

Проблема глубже: MDM-шлюзы как класс устройств выпадают из стандартного цикла vulnerability management. Они не на радаре SOC, потому что не генерируют endpoint-телеметрию. Они не под контролем IT-ops, потому что управляются мобильной командой. И они стоят на периметре, потому что так написано в deployment guide. Классический blind spot между SOC и mobile team, где можно месяцами оставаться незамеченным.

Я убеждён, что в ближайший год мы увидим волну атак на MDM/UEM-шлюзы - не из-за новых CVE (хотя и это неизбежно), а потому что атакующие этот blind spot уже нащупали. CISA SSVC для CVE-2026-10523 сейчас - «Track» (мониторить), не «Act». С EPSS 0.52 и историей CVE-2023-38035 с ransomware-пометкой - это вопрос недель, не месяцев. Если хочешь отработать разведку и эксплуатацию auth bypass на edge-инфраструктуре - на HackerLab есть лабы с Tomcat-based шлюзами, где подобная цепочка собирается end-to-end.
 
Мы в соцсетях:

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

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

HackerLab