Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-priv AAP user
-
DeliveryCreate Schedule or WFJT node
-
ExploitSet scm_branch to '--upload-pack=/bin/id'
-
ExecutionSerializer accepts injected git argument
-
PersistRuntime guard (jobs.py:1502) blocks execution
-
ImpactLatent integrity gap (RCE only if guard removed)
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 AAP/AWX account with privileges to create or edit a Schedule or a Workflow Job Template (WFJT) node, since scm_branch is only reachable through LaunchConfigurationBaseSerializer on those objects (Project/JobTemplate/JobLaunch serializers already enforce validate_scm_branch()). Exploitation is currently LIMITED to a latent validation gap: the runtime guard at jobs.py:1502 raises ValueError on the leading-dash payload, so no command execution occurs in shipping code. Escalation to RCE is conditional on that task-layer guard being refactored or removed in a future release - it is not achievable against current default configurations. |
| Impact | This is a low-priority, latent hardening gap rather than an active threat. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N, score 3.1 LOW) is internally consistent with the description: network-reachable API endpoint (AV:N), but high complexity (AC:H) because the injected argument is currently caught by a runtime guard at jobs.py:1502 and never reaches command execution, low-privilege authentication required (PR:L), and integrity-only limited impact (I:L, no confidentiality or availability). No EPSS score, no CISA KEV listing, no SSVC decision data, and no public exploit code are provided. The single Red Hat/CWE-88 signal (argument injection) is credible but the vulnerability is explicitly described as non-exploitable today - the description itself frames it as a defense-in-depth API-validation gap ('sole reliance on a task-layer guard'), where RCE only materializes 'if refactoring that guard away.' NOTE: the input Tag 'Information Disclosure' CONFLICTS with the CVSS vector, which shows C:N/I:L - this is an integrity/argument-injection issue, not confidentiality/disclosure; the tag is mislabeled. Bottom line: real but low real-world risk, appropriate to patch as routine hardening, not an emergency. |
| Exploit ScenarioDerived | A low-privileged authenticated AAP/AWX user with permission to create a Schedule or Workflow Job Template node sets the scm_branch field to an argument-injection payload such as '--upload-pack=/bin/id', which the LaunchConfigurationBaseSerializer accepts because it lacks the leading-dash validation present in the Project/JobTemplate/JobLaunch serializers. In current shipping code the payload is stopped by the jobs.py:1502 ValueError check at runtime, so no code executes; it becomes RCE only if that task-layer guard is ever removed. No public proof-of-concept or exploit code is available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
Red Hat Ansible Automation Platform 2 (AWX) accepts leading-dash values in the scm_branch field processed by LaunchConfigurationBaseSerializer, allowing an authenticated user who can create or edit a Schedule or Workflow Job Template node to supply a value such as --upload-pack=/bin/id. The gap is a latent argument-injection issue (CWE-88) that is currently neutralized at runtime by the ValueError guard at jobs.py:1502, so no command execution occurs in shipping code; it would escalate to remote code execution only if that task-layer guard were refactored or removed in a future release. No public exploit code has been identified at time of analysis, and impact today is limited to a low-severity hardening gap (CVSS 3.1, integrity-only).
RemediationAI
No vendor-released patch version was provided in the available intelligence, so consult the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-71464 and Bugzilla 2512374 for updated fixed-release guidance. Until a patched build is confirmed, preserve the runtime ValueError guard at jobs.py:1502, since that task-layer check is the only control currently preventing the leading-dash value from reaching the scm command line, and treat any refactor of that guard as a security regression. As a compensating control, restrict the ability to create or edit Schedules and Workflow Job Template nodes to trusted operators via RBAC, accepting that this may slow legitimate automation workflows for broader user groups. Where feasible, add upstream validation equivalent to validate_scm_branch() in LaunchConfigurationBaseSerializer so the leading-dash check occurs at the API layer, ensuring defense-in-depth if the task-layer guard is ever changed. The assessed exploitation path requires an authenticated account with Schedule or WFJT-node edit privileges (CVSS PR:L), so auditing and reducing those privileges materially lowers residual risk.
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
The issue is an argument-injection flaw (CWE-88, improper neutralization of argument delimiters) in the Django REST Framework serializer layer of Ansible Automation Platform 2 / upstream AWX. Unlike the Project, JobTemplate, and JobLaunch serializers, which call validate_scm_branch() to reject values beginning with a dash, LaunchConfigurationBaseSerializer omits that check, so a crafted scm_branch such as --upload-pack=/bin/id passes API validation on Schedule and Workflow Job Template node objects. Because the value is later placed into a git/scm command line, a leading dash can be misinterpreted as an option rather than a branch name; the runtime guard at jobs.py:1502 raises ValueError on such payloads, acting as a defense-in-depth control that currently prevents exploitation. Affected products map to the wildcard CPE cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*, indicating all released versions of the AAP 2 appliance and its AWX-based automation controller are in scope. The root cause is purely validation-layer inconsistency rather than a defect in the command execution logic, which is why remediation centers on enforcing validate_scm_branch() in the remaining serializer and on not removing the task-layer guard.
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:H/PR:L/UI:N/S:U/C:N/I:L/A:N
Network API but AC:H because the injected argument is blocked by the jobs.py:1502 runtime guard; PR:L for authenticated Schedule/WFJT-node creation; integrity-only I:L, no C or A impact.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
LaunchConfigurationBaseSerializer.scm_branch has no validate_scm_branch() leading-dash check, unlike Project/JobTemplate/JobLaunch serializers. Schedule and WFJT Node accept --upload-pack=/bin/id as scm_branch. Currently blocked at runtime by jobs.py:1502 ValueError check (defense-in-depth), but the API validation gap means sole reliance on a task-layer guard. Refactoring that guard away would promote this to RCE.
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
Affected Products (CPE)CVE.org
Missing authorization checks in the Red Hat Ansible Automation Platform 2 automation-controller allow an authenticated o
Authenticated users who hold permission to create or modify a project within a single organization can execute arbitrary
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
EUVD-2026-85541
GHSA-p82w-cg44-8jjx
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB