7 мая 2026 года Microsoft опубликовала бюллетень по CVE-2026-42826 - уязвимости Azure DevOps с максимальной оценкой 10.0 по CVSS 3.1. Десятка. За Information Disclosure. Вендор как CNA поставил максимум, NVD подтвердил. И вот тут начинается интересное: считать ли утечку секретов CI/CD-пайплайна "раскрытием информации" или полной компрометацией инфраструктуры - вопрос не академический. Разбираем вектор, маппим атаку на MITRE ATT&CK и показываем, что эта CVE-шка означает для пентеста Azure DevOps-окружений.
Бизнес-логика атаки: зачем атакующему Azure DevOps pipeline
Azure DevOps - точка, где сходятся исходный код, секреты (PAT-токены, service connections, переменные пайплайнов), IaC-шаблоны и артефакты сборки. Компрометация такой системы - не чтение чужого кода. Это ключи от облачных подписок Azure, AWS, GCP через service connections, возможность внедрить вредоносный код в pipeline и в конечном счёте - supply chain атака на всех потребителей артефактов.И это не теория. Компрометация системы сборки SolarWinds (2020) затронула около 18 000 организаций, получивших trojanized-обновление Orion. Утечка из Codecov (2021) привела к эксфильтрации секретов из тысяч пайплайнов. Бэкдор в PHP - результат компрометации системы управления исходным кодом. Каждый инцидент начинался с одного - с доступа к данным CI/CD.
А CVE-2026-42826 даёт этот доступ без аутентификации, без взаимодействия с пользователем, без сложных предусловий.
Технический разбор CVE-2026-42826: Azure DevOps information disclosure
CVSS-оценка 10.0: почему Information Disclosure получила максимальный балл
Microsoft как CNA выставила максимальный балл 10.0, NVD подтвердил. Разбираем вектор и смотрим, что получилось бы при альтернативной оценке - если бы NVD учитывал только прямой импакт.Microsoft (CNA) выставила вектор:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - 10.0 CRITICALКомпоненты: эксплуатация через сеть (AV:N), низкая сложность (AC:L), без привилегий (PR:N), без действий пользователя (UI:N), Scope Changed - затрагивает ресурсы за пределами уязвимого компонента (S:C), полное воздействие на конфиденциальность, целостность и доступность (C:H/I:H/A:H).
Альтернативный расчёт (если учитывать только прямой импакт - чтение данных без влияния на целостность и доступность):
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - 7.5 HIGH (расчётное значение, не официальная оценка NVD)| Компонент | Официальная оценка (CNA/NVD) | Альтернативный расчёт | Что означает разница |
|---|---|---|---|
| Scope | Changed (S:C) | Unchanged (S:U) | Официальная оценка учитывает воздействие на смежные системы |
| Integrity | High (I:H) | None (I:N) | Альтернативный расчёт учитывает только прямой импакт - чтение данных |
| Availability | High (A:H) | None (A:N) | Альтернативный расчёт не фиксирует влияния на доступность |
| Итоговый балл | 10.0 CRITICAL | 7.5 HIGH (расчётный) | Разница в 2.5 балла |
И NVD, и MSRC подтверждают 10.0 CRITICAL. MSRC маркирует impact-тип как "Information Disclosure" при severity "Critical" - сочетание, которое встречается редко. В практике MSRC-бюллетеней Critical + Information Disclosure - куда реже, чем Critical + RCE или EoP. Microsoft фактически говорит: утечка информации из Azure DevOps настолько опасна, что эквивалентна полной компрометации.
Для пентестера интерпретация зависит от контекста. Если Azure DevOps-организация содержит service connections с Full Access к продакшен-подписке Azure - 10.0 полностью оправдана. Если это изолированная среда разработки без привилегированных подключений - реальный импакт может быть ниже формального балла. На практике я чаще встречаю первый вариант.
CISA SSVC и EPSS: текущий статус угрозы
CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor) - широкий класс (abstraction: Class, likelihood: High), покрывающий всё от утечки stack trace до полного дампа данных. В контексте Azure DevOps "чувствительная информация" - это API-ключи в переменных пайплайна, токены service connections, содержимое репозиториев, артефакты сборки, конфигурации Kubernetes.CISA SSVC для CVE-2026-42826:
- Exploitation: none - активной эксплуатации не зафиксировано
- Automatable: yes - эксплуатация автоматизируема
- Technical Impact: total - полное техническое воздействие
- Decision: Track - мониторить ситуацию
EPSS: 0.0084 при перцентиле 0.5376 - чуть выше медианы. Вероятность эксплуатации в течение 30 дней невысокая. Но EPSS отражает вероятность массовой эксплуатации - целевые атаки он не моделирует.
Маппинг на MITRE ATT&CK показывает полную kill chain - от information disclosure до supply chain compromise:
Шаг 1: Initial Access - Exploit Public-Facing Application (T1190). Атакующий эксплуатирует CVE-2026-42826 для доступа к данным Azure DevOps. Вектор сетевой, аутентификация не нужна, сложность низкая.
Шаг 2: Credential Access - Credentials In Files (T1552.001). Раскрытая информация содержит секреты: PAT-токены, ключи service connections, переменные окружения. Атакующий собирает credentials из утечки и получает аутентифицированный доступ к Azure DevOps API.
Шаг 3: Collection - Code Repositories (T1213.003). С украденными токенами атакующий получает доступ к Git-репозиториям. Цель: исходный код, дополнительные секреты в истории коммитов (git log - ваш друг и враг одновременно), понимание архитектуры.
Шаг 4: Execution - Poisoned Pipeline Execution (T1677). Используя скомпрометированные credentials, атакующий модифицирует YAML-определения пайплайнов или подменяет скрипты в репозитории, внедряя вредоносные шаги. Каждый последующий запуск пайплайна исполняет произвольный код в контексте сборочного агента.
Шаг 5: Persistence - Cloud Accounts (T1078.004). Через скомпрометированные service connections атакующий создаёт backdoor-аккаунты в Microsoft Entra ID - устойчивый доступ к облачной инфраструктуре.
Шаг 6: Collection - Data from Cloud Storage (T1530). Доступ к артефактам сборки, контейнерным образам в ACR, конфигурациям в Blob Storage - всё, что подключено через service connections.
Шаг 7: Exfiltration - Exfiltration to Code Repository (T1567.001). Эксфильтрация через легитимный канал - push в контролируемый атакующим репозиторий. Красиво и незаметно.
Шаг 8: Supply Chain - Compromise Software Dependencies and Development Tools (T1195.001). Финальный импакт: отравленные артефакты попадают к потребителям через стандартные механизмы доставки.
Вся цепочка от T1190 до T1195.001 - не теоретическая конструкция. Компрометация SolarWinds прошла именно этот путь: атакующие получили доступ к системе сборки, внедрили backdoor в Orion и через штатный механизм обновлений доставили его тысячам клиентов.
Официальное описание MSRC: "Azure DevOps Server Elevation of Privilege Vulnerability". Детали вектора атаки Microsoft публично не раскрывала. Уязвимость затрагивала on-prem версии Azure DevOps Server. Публичных эксплойтов для CVE-2023-36561 в открытых базах (Exploit-DB, GitHub) не обнаружено.
| Параметр | CVE-2023-36561 | CVE-2026-42826 |
|---|---|---|
| CVSS (CNA) | 7.3 HIGH | 10.0 CRITICAL |
| CWE | CWE-284 (Improper Access Control) | CWE-200 (Information Disclosure) |
| Затронутый продукт | Azure DevOps Server (on-prem) | Azure DevOps (облачный сервис) |
| Вектор | EoP, детали не раскрыты Microsoft | Через сеть, без аутентификации |
| Патч | Обновление on-prem + fix для cloud | Server-side fix (exclusively hosted) |
| EPSS (2026-07) | 0.0085 | 0.0084 |
Эволюция показательна: от локализованных EoP-уязвимостей on-prem продукта к сетевым уязвимостям облачного сервиса, раскрывающим данные без аутентификации. Вектор расширяется, порог входа снижается.
Маппинг на OWASP CI/CD Security Risks
CVE-2026-42826 затрагивает несколько рисков из OWASP Top 10 CI/CD Security Risks:- CICD-SEC-6: Insufficient Credential Hygiene - секреты в Azure DevOps становятся доступны при эксплуатации
- CICD-SEC-7: Insecure System Configuration - дефолтные настройки часто не ограничивают доступ к чувствительным данным на уровне проекта
- CICD-SEC-10: Insufficient Logging and Visibility - без настроенного аудита факт эксплуатации может остаться незамеченным
- CICD-SEC-4: Poisoned Pipeline Execution - downstream-импакт после получения секретов
Ограничения и предусловия эксплуатации
Облачный сервис. Судя по описанию (affected product:microsoft:azure_devops), CVE-2026-42826 затрагивает облачный сервис Azure DevOps Services. Пользователи не применяют патч самостоятельно - Microsoft исправляет на своей стороне. По данным MSRC, исправление выпущено.Azure DevOps Server (on-prem) - статус неясен. В verified data affected product указан как
microsoft:azure_devops без конкретных версий on-prem (в отличие от CVE-2023-36561, где версии перечислены явно). Если у вас on-prem Azure DevOps Server - проверяйте бюллетени MSRC для конкретной версии.Публичный PoC отсутствует. CISA SSVC фиксирует exploitation: none. Публичных эксплойтов нет. Это ограничивает практическое воспроизведение, но не снижает значимость для threat modeling.
Что неизвестно:
- Конкретный HTTP-эндпоинт или API-метод, через который происходит утечка
- Точный объём данных, доступных через уязвимость
- Были ли инциденты до публикации бюллетеня
Защита CI/CD от атак: детектирование и митигация утечки данных
Требования к окружению
- Azure CLI с расширением
azure-devops(установка:az extension add --name azure-devops) - Роль Project Collection Administrator или Organization Owner для доступа к audit logs
- PAT-токен с scope
Audit Log: Read(минимально необходимый для аудита)
Обнаружение аномальной активности
Основной инструмент для Azure DevOps Services - Audit Logs. Запрос за период до и после патча:
Bash:
az devops audit-log query --org https://dev.azure.com/{org} --start-time 2026-04-15 --end-time 2026-05-15 --output table
- Аномальные запросы к REST API от незнакомых IP-адресов
- Массовые GET к эндпоинтам переменных пайплайнов и service connections
- Обращения к
_apis/serviceendpoint/endpointsили_apis/distributedtask/variablegroupsвне рабочих часов
Bash:
az devops service-endpoint list --org https://dev.azure.com/{org} --project {project} --output table --query "[].{Name:name, Type:type}"
Митигация
Немедленные действия (для пользователей Azure DevOps cloud): патч применён Microsoft, дополнительных действий для устранения самой уязвимости не требуется. Но ключевой вопрос другой: были ли скомпрометированы секреты ДО патча?Стратегические меры (по рекомендациям Azure Security):
- Перейти на Workload Identity Federation через Microsoft Entra Workload ID - исключает хранение статических секретов, которые могут утечь
- Включить Approvals and Checks для production-пайплайнов: при компрометации секретов атакующий не запустит deploy без одобрения
- Ограничить сетевой доступ через Conditional Access Policies: привязка к IP-диапазонам, требование managed device
Чеклист: безопасность DevOps pipeline
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Оценка 10.0 CRITICAL для Information Disclosure - отражение фундаментальной проблемы оценки CI/CD-уязвимостей. Формально это "чтение данных". Но когда "данные" - ключи от продакшен-инфраструктуры, грань между information disclosure и full compromise исчезает. И CNA, и NVD согласились с максимальным баллом - и я с ними.
В реальных проектах встречаются Azure DevOps-организации, где один PAT-токен с Full Access scope открывает все проекты, все репозитории, все пайплайны. В таких средах утечка одного токена - это действительно 10.0, безотносительно формальных расчётов CVSS-вектора. Отрасль движется к secret-less credentials: Workload Identity Federation, managed identities, OIDC-токены вместо статических ключей. Переход медленный - и пока в переменных пайплайнов лежат plaintext-пароли от баз данных и access keys от S3-бакетов, каждая уязвимость класса CWE-200 в CI/CD-платформе - потенциальная supply chain атака.
CVE-2026-42826 опасна не сама по себе, а как индикатор: что именно может утечь из вашего Azure DevOps при следующей подобной уязвимости. Пройдите чеклист выше. Если после аудита и ротации всех секретов ротировать было нечего, потому что секреты не хранились в DevOps - вы уже в порядке. Если ротировать пришлось десятки service connections с полным доступом к продакшену - считайте, что CVE-2026-42826 стал самым дешёвым аудитом CI/CD-безопасности в истории вашей организации.
Последнее редактирование модератором: