CVE-2025-29813 — Azure DevOps Token Hijacking / Privilege Escalation¶
Key facts
CVE-2025-29813 is a Critical (10.0) vulnerability: Azure DevOps Token Hijacking / Privilege Escalation. This entry ships a detection-only PoC.
| CVE | CVE-2025-29813 |
| Severity | Critical (10.0) |
| Detection / prevention | — |
| PoC | poc.py |
| Source | 2025/CVE-2025-29813/ |
Details¶
Overview¶
| Attribute | Value |
|---|---|
| CVE ID | CVE-2025-29813 |
| Severity | Critical |
| CVSS Score | 10.0 |
| Affected Product | Azure DevOps |
| Vulnerability Type | Token Hijacking / Privilege Escalation |
| CWE | CWE-269 |
Description¶
Critical vulnerability in Azure DevOps pipelines. Improper handling of pipeline job tokens allows attackers to swap short-term tokens for long-term ones, enabling persistent unauthorized access.
Affected Versions¶
- Azure DevOps, Visual Studio
Verification Process¶
The PoC uses a multi-stage verification approach:
Step 1: Product/Version Detection (Passive)¶
[*] Query target endpoint
[*] Detect product signatures and extract version
[*] Check if version is in vulnerable range
Step 2: Active Vulnerability Testing¶
| Method | Description | Detection |
|---|---|---|
| Error-based | Inject payloads that trigger error messages | Error indicators in response |
| Timing-based | Inject delay commands and measure response | Response time > baseline + delay |
| Response-based | Check for expected patterns in response | Pattern match in response body |
| Callback-based | Trigger OOB request to attacker server | HTTP request received |
Verification Flow¶
┌─────────────────────────────────────────────────────────────┐
│ Product Detection │
│ Query target → Detect product/version │
│ Check if version in vulnerable range │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Active Vulnerability Testing │
│ │
│ 1. Error-based Test │
│ └─ Send payload → Check for error indicators │
│ └─ If error found → CONFIRMED VULNERABLE │
│ │
│ 2. Timing-based Test │
│ └─ Send delay payload → Measure response time │
│ └─ If delayed → CONFIRMED VULNERABLE │
│ │
│ 3. Callback-based Test (if URL provided) │
│ └─ Send OOB payload → Check callback server │
│ └─ If request received → CONFIRMED VULNERABLE │
└─────────────────────────────────────────────────────────────┘
Usage¶
# Full vulnerability check (version + active testing)
python3 poc.py -t https://target.com -c
# Version-only check (passive, no payloads sent)
python3 poc.py -t https://target.com -c --version-only
# With OOB callback (most reliable)
python3 poc.py -t https://target.com -c --callback http://your-server.com
Mitigation¶
- Upgrade to the latest patched version
- Apply workarounds if patch unavailable
- Monitor for exploitation attempts
- Network segmentation to limit exposure
References¶
Frequently asked questions¶
What is CVE-2025-29813?¶
CVE-2025-29813 is a Critical (10.0) vulnerability: Azure DevOps Token Hijacking / Privilege Escalation. This entry ships a detection-only PoC.
How do I detect CVE-2025-29813?¶
Run the detection-only PoC included with this entry against your Docker test lab to confirm whether a target is affected; pair it with your own IDS logging.
How do I block or mitigate CVE-2025-29813?¶
Upgrade to a fixed version per the vendor advisory; the NVD record lists the affected versions. Use the included PoC to verify your remediation.
For authorized security testing and research only. See the full source and NVD record.