Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged org project manager
-
DeliverySet Project scm_url to '--upload-pack=<cmd>:x'
-
ExploitTrigger project update running git ls-remote
-
Executiongit executes injected command via shell on task pod
-
PersistRead output via project update stdout endpoint
-
ImpactPivot cross-tenant and move laterally in-cluster
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
|
| Exploitation Conditions | Requires an authenticated user who holds permission to create or modify a Project within at least one organization in Red Hat Ansible Automation Platform 2 automation-controller; no admin or cross-org rights are needed. The attacker must set the Project scm_url to a value beginning with a dash (e.g. '--upload-pack=<command>:x') and trigger a project update using the git SCM module, which runs |
| Impact | This is a genuine high-priority flaw, not a CVSS-inflated one. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H = 9.9) is well-supported by the description: an argument-injection bug (CWE-88) where an attacker-controlled Project scm_url beginning with a dash (e.g. '--upload-pack=<command>:x') is passed verbatim to |
| Exploit ScenarioDerived | A low-privileged user with project-management rights in one organization creates or edits a Project and sets the SCM URL to a crafted value like '--upload-pack=touch /tmp/pwned;:x'. When automation-controller runs the project update, |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Authenticated users who hold permission to create or modify a project within a single organization can execute arbitrary commands on the Ansible Automation Platform 2 automation-controller task pod by setting the Project scm_url to a value beginning with a dash, for example '--upload-pack=<command>:x'. The automation-controller's git SCM module passes that URL verbatim as a positional argument to 'git ls-remote' without a '--' end-of-options separator, so git treats it as the --upload-pack option and executes the attacker's command via a shell, with output reflected through the project update stdout endpoint, enabling cross-tenant compromise and in-cluster lateral movement (CVSS 3.1 9.9, scope changed). Exploitation needs valid platform credentials and the git project type but no admin or cross-organization rights, and no public exploit code has been identified at time of analysis.
RemediationAI
No vendor-released patch was identified at time of analysis, so monitor https://access.redhat.com/security/cve/CVE-2026-84502 and https://bugzilla.redhat.com/show_bug.cgi?id=2527096 for the patched automation-controller build and apply it as soon as it is published. Until then, the closest thing to a root-cause fix is to enforce input validation that rejects or strips any scm_url value starting with a dash before it reaches the git SCM module (a custom pre-save validation hook or a filtering proxy in front of the controller API), accepting that this is custom code requiring maintenance across upgrades. The most practical preventive control is to restrict project creation and modification rights to users who are already trusted with control-plane access, since the flaw needs only the project-management role; this breaks delegated self-service workflows but removes the entire unauthenticated-by-privilege attack surface. Complement that with strict egress network policies limiting control-plane task pods to the SCM hosts actually in use (which can break legitimate repository access if too narrow), monitoring of project update stdout and task pod process activity for unexpected command execution (detective only), and an audit of existing projects for scm_url values that begin with '-'. None of these compensating controls repairs the underlying improper argument handling, so prompt patching remains the priority.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This is CWE-88, improper neutralization of argument delimiters in a command ('argument injection'), inside the automation-controller component of Red Hat Ansible Automation Platform 2 (tracked by CPE cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2). The Project scm_url field is stored without validation and forwarded verbatim to the git SCM module, which invokes git ls-remote with the URL as a positional argument and no '--' separator. Because the value is not treated as an opaque operand, git parses a leading dash as an option such as --upload-pack, whose value is then executed through a shell; the same success path is what makes the CVSS scope Changed (S:C), since a low-privilege actor in one organization crosses a trust boundary into the shared control-plane task pod and can reach other tenants' data and in-cluster resources. The vulnerability is reachable in default configurations of the git-based project update path, so no non-default platform setting has to be enabled, though a valid authenticated account with project-management rights is required.
Know when Red Hat Ansible Automation Platform 2 gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Network-reachable API with only low org-level project privileges (PR:L), trivial argument injection (AC:L), and command execution on a shared pod causing cross-tenant compromise justify S:C and full C/I/A impact.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
A flaw was found in Red Hat Ansible Automation Platform's automation- controller. The Project scm_url field is not validated against values that begin with a dash and is stored and passed verbatim to the git SCM module. Because the module runs git ls-remote with the URL as a positional argument and without a "--" separator, a git project URL such as "--upload-pack=<command>:x" is interpreted by git as the --upload-pack option and executed via a shell. A user with permission to create or modify a project in a single organization can thereby execute arbitrary commands on the control-plane task pod, with output reflected through the project update stdout endpoint, leading to cross-tenant compromise and in-cluster lateral movement
Articles & Coverage 1
Executive ViewAI
A critical command-injection flaw in Ansible Automation Platform 2's automation-controller allows any authenticated user with permission to create or modify a project to run arbitrary commands inside the platform's task pods, potentially crossing organization and tenant boundaries and enabling lateral movement within the cluster. Because no vendor patch is currently available and no public exploit code has been identified at time of analysis, the exposure is driven by how widely project-creation rights are delegated across your automation teams. Leadership should care because the automation controller typically brokers high-privilege credentials into production systems, making it a high-value pivot point for insider misuse or a compromised developer account.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict project create/modify permissions to a minimal trusted set of users; disable or suspend creation of git-type projects until the fix is available; validate or allowlist scm_url values and reject any beginning with a dash; restrict task pod egress via network policy and least-privilege service accounts; monitor project update stdout and audit logs for suspicious git arguments and command output; rotate credentials reachable from task pods.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Missing authorization checks in the Red Hat Ansible Automation Platform 2 automation-controller allow an authenticated o
Privilege escalation and remote code execution on managed hosts is possible in Red Hat Ansible Automation Platform 2 bec
Credential disclosure in Red Hat Ansible Automation Platform 2.5 and 2.6 allows any authenticated user to retrieve plain
Server-side request forgery in the Red Hat Ansible Automation Platform 2 Controller's HashiCorp Vault credential plugin
Privilege escalation in Red Hat Ansible Automation Platform 2 (built on the AWX upstream project) lets an authenticated
Arbitrary file write in pulpcore's FilesystemExport feature allows an authenticated administrator to escape the intended
Symlink-following file overwrite on the Ansible control node is possible in ansible-core when a user runs `ansible-galax
Stored cross-site scripting in the automation-controller component of Red Hat Ansible Automation Platform 2 lets an auth
An authenticated automation-controller administrator in Red Hat Ansible Automation Platform 2 can turn the administrator
Jinja2 template injection in Ansible Operator Plugins (CWE-1336) lets an authenticated Kubernetes user who can create or
Missing object-level authorization in the JobTemplate copy endpoint (CopyAPIView) of AWX and Red Hat Ansible Automation
mTLS authentication bypass in the Red Hat Ansible Automation Platform (AAP) Gateway Envoy proxy allows unauthenticated r
EUVD-2026-85560
GHSA-vpmq-jxf9-c55v
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB