Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2024-20667

CVE-2024-20667: Azure DevOps Server RCE Vulnerability

CVE-2024-20667 is a remote code execution vulnerability in Microsoft Azure DevOps Server that enables attackers to execute arbitrary code. This article covers the technical details, affected versions, security impact, and mitigation.

Updated:

CVE-2024-20667 Overview

CVE-2024-20667 is a remote code execution vulnerability affecting Microsoft Azure DevOps Server. The flaw is categorized under [CWE-77] Improper Neutralization of Special Elements used in a Command (Command Injection). An authenticated attacker with low privileges can exploit this issue over the network to execute arbitrary code on the target server. Microsoft rated the vulnerability HIGH with a CVSS 3.1 base score of 7.5. Affected releases include Azure DevOps Server 2019.1.2, 2020.1.2, and 2022.1.

Critical Impact

Successful exploitation allows an authenticated attacker to run arbitrary code in the context of the Azure DevOps Server, compromising confidentiality, integrity, and availability of the build and source control environment.

Affected Products

  • Microsoft Azure DevOps Server 2019.1.2
  • Microsoft Azure DevOps Server 2020.1.2
  • Microsoft Azure DevOps Server 2022.1

Discovery Timeline

  • 2024-02-13 - CVE-2024-20667 published to NVD
  • 2026-08-10 - Last updated in NVD database

Technical Details for CVE-2024-20667

Vulnerability Analysis

CVE-2024-20667 is a remote code execution flaw in Azure DevOps Server. The Common Weakness Enumeration classifies the issue as [CWE-77] command injection, indicating that user-supplied input reaches a command interpreter without sufficient neutralization. An attacker who holds a low-privilege account on the DevOps instance can craft input that the server processes as executable commands. Successful exploitation yields code execution in the context of the Azure DevOps Server process. Because Azure DevOps Server hosts source code, pipeline definitions, and build artifacts, code execution here can pivot into supply-chain compromise of downstream projects.

Root Cause

The root cause is improper neutralization of special elements in a command string processed by Azure DevOps Server. Microsoft has not published low-level technical details in the public advisory. The [CWE-77] classification indicates that untrusted input is concatenated into a command executed by the server without adequate sanitization or the use of safe parameterized APIs.

Attack Vector

The attack vector is network-based with high attack complexity, requiring low privileges and no user interaction. An authenticated attacker sends a crafted request to a vulnerable Azure DevOps Server endpoint. The server processes the input as part of a command, allowing the attacker to execute arbitrary code. The high attack complexity reflects conditions the attacker cannot fully control, such as timing or configuration state.

No public proof-of-concept exploit is available, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. Refer to the Microsoft Security Update CVE-2024-20667 for vendor-provided technical context.

Detection Methods for CVE-2024-20667

Indicators of Compromise

  • Unexpected child processes spawned by Azure DevOps Server service accounts, particularly command shells such as cmd.exe, powershell.exe, or /bin/sh.
  • Anomalous outbound network connections originating from the Azure DevOps Server host to untrusted external addresses.
  • New or modified build pipeline definitions, service connections, or agent registrations created by low-privilege accounts.
  • Web request logs containing unusual metacharacters or command separators targeting Azure DevOps Server endpoints.

Detection Strategies

  • Monitor Azure DevOps Server IIS and application logs for authenticated requests containing shell metacharacters such as ;, |, &&, or backticks.
  • Correlate process creation telemetry on the DevOps host with the parent process being the Azure DevOps Server worker to identify command injection execution.
  • Baseline normal pipeline activity and alert on deviations such as new tasks or scripts introduced outside standard change windows.

Monitoring Recommendations

  • Enable verbose auditing on Azure DevOps Server and forward logs to a centralized SIEM for correlation.
  • Monitor authentication logs for low-privilege accounts performing administrative or pipeline-modifying actions.
  • Track outbound traffic from the DevOps host and alert on connections to non-corporate destinations.

How to Mitigate CVE-2024-20667

Immediate Actions Required

  • Apply the Microsoft security update referenced in the Microsoft Security Update CVE-2024-20667 advisory to all affected Azure DevOps Server instances.
  • Inventory Azure DevOps Server deployments and confirm patch level for versions 2019.1.2, 2020.1.2, and 2022.1.
  • Review and restrict membership of low-privilege groups that can authenticate to Azure DevOps Server.
  • Audit pipeline definitions, service connections, and agent pools for unauthorized modifications since February 2024.

Patch Information

Microsoft has released security updates addressing CVE-2024-20667. Administrators should consult the Microsoft Security Update CVE-2024-20667 page for version-specific patch packages and installation guidance. Apply patches to all Azure DevOps Server instances, including staging and development environments.

Workarounds

  • Restrict network access to Azure DevOps Server so that only trusted corporate networks or VPN clients can reach the web interface.
  • Enforce the principle of least privilege by removing unnecessary user accounts and reducing default project permissions.
  • Require multi-factor authentication for all Azure DevOps Server accounts to raise the cost of credential-based access.
  • Isolate Azure DevOps Server hosts on segmented networks with strict egress filtering to limit post-exploitation activity.
bash
# Example: restrict inbound access to Azure DevOps Server using Windows Firewall
# Allow only trusted management subnet 10.10.0.0/24 to reach TCP/8080
New-NetFirewallRule -DisplayName "AzDO-Allow-Mgmt" -Direction Inbound `
  -Protocol TCP -LocalPort 8080 -RemoteAddress 10.10.0.0/24 -Action Allow

New-NetFirewallRule -DisplayName "AzDO-Block-Other" -Direction Inbound `
  -Protocol TCP -LocalPort 8080 -Action Block

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.