Skip to main content

Ansible Automation Platform CVE-2026-71464

| EUVDEUVD-2026-85541 LOW
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-09-23 redhat GHSA-p82w-cg44-8jjx
3.1
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-priv AAP user
  2. Delivery
    Create Schedule or WFJT node
  3. Exploit
    Set scm_branch to '--upload-pack=/bin/id'
  4. Execution
    Serializer accepts injected git argument
  5. Persist
    Runtime guard (jobs.py:1502) blocks execution
  6. Impact
    Latent 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.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (redhat) PRIMARY 3.1 LOW
AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.1 LOW

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.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

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

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
enterprise Ansible/AWX automation platform, common but not ubiquitous
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

16
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +16
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Affected Products (CPE)CVE.org

cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*:*:*:*:*:*:*:*
CVE-2026-84719 CRITICAL
9.9 Sep 23

Missing authorization checks in the Red Hat Ansible Automation Platform 2 automation-controller allow an authenticated o

CVE-2026-84502 CRITICAL
9.9 Sep 23

Authenticated users who hold permission to create or modify a project within a single organization can execute arbitrary

CVE-2026-84474 CRITICAL
9.9 Sep 23

Privilege escalation and remote code execution on managed hosts is possible in Red Hat Ansible Automation Platform 2 bec

CVE-2026-11807 CRITICAL
9.6 Jun 23

Credential disclosure in Red Hat Ansible Automation Platform 2.5 and 2.6 allows any authenticated user to retrieve plain

CVE-2026-12564 CRITICAL
9.6 Aug 18

Server-side request forgery in the Red Hat Ansible Automation Platform 2 Controller's HashiCorp Vault credential plugin

CVE-2026-75884 CRITICAL
9.1 Sep 23

Privilege escalation in Red Hat Ansible Automation Platform 2 (built on the AWX upstream project) lets an authenticated

CVE-2026-12701 CRITICAL
9.0 Jul 20

Arbitrary file write in pulpcore's FilesystemExport feature allows an authenticated administrator to escape the intended

CVE-2026-89091 HIGH
8.8 Oct 08

Symlink-following file overwrite on the Ansible control node is possible in ansible-core when a user runs `ansible-galax

CVE-2026-84683 HIGH
8.7 Sep 23

Stored cross-site scripting in the automation-controller component of Red Hat Ansible Automation Platform 2 lets an auth

CVE-2026-84691 HIGH
8.7 Sep 23

An authenticated automation-controller administrator in Red Hat Ansible Automation Platform 2 can turn the administrator

CVE-2026-92982 HIGH
8.5 Oct 15

Jinja2 template injection in Ansible Operator Plugins (CWE-1336) lets an authenticated Kubernetes user who can create or

CVE-2026-76648 HIGH
8.5 Sep 23

Missing object-level authorization in the JobTemplate copy endpoint (CopyAPIView) of AWX and Red Hat Ansible Automation

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy