Skip to main content

Ansible Automation Platform CVE-2026-84724

| EUVDEUVD-2026-85616 MEDIUM
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-09-23 redhat GHSA-q3jc-p8r9-qrvp
6.6
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as automation-controller superuser
  2. Delivery
    Launch system-job with space-laden 'days' value
  3. Exploit
    Bypass missing integer validation, args re-split
  4. Execution
    Inject Python path option into awx-manage
  5. Impact
    Control process argv and module search path

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 with SUPERUSER privileges on automation-controller - the single most limiting factor, since such a user already administers the platform. The specific attack surface is the system-job template launch endpoint and its user-supplied 'days' variable, which skips the integer validation defined elsewhere for that field. Exploitation depends on the dispatcher flattening the management-command argument list into a single space-delimited string that the job runner then re-splits, and on the fact that system jobs are executed in-process on the control node WITHOUT the container isolation applied to all other job types. There is no user-interaction requirement (UI:N), but the outcome is bounded to argument-vector and module-search-path control of awx-manage; achieving actual code execution would additionally require an import gadget that the current management commands do not provide.

Impact

This is a genuine but constrained control-plane flaw whose real-world priority is dampened by an extremely high privilege bar. The CVSS 6.6 vector (AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L) requires PR:H - and the description specifies not merely an authenticated user but an authenticated SUPERUSER of automation-controller, meaning the attacker must already hold near-total administrative control of the platform, sharply limiting who can exploit this and how much marginal damage it adds (hence C:L/I:L/A:L rather than High impacts). The S:C scope change is justified: system jobs execute in-process on the control node WITHOUT the container isolation applied to every other job type, so argument injection escapes into the control-plane awx-manage process. Crucially, the vendor itself disclaims full code execution - the description states RCE would require an additional import gadget not present in current management commands, so the demonstrated impact is argument injection with control of the Python module search path, NOT confirmed code execution. This directly contradicts the 'RCE' tag applied to the record. No EPSS score, no CISA KEV listing, and no public POC were provided; SSVC data is absent. Bottom line: a real, vendor-confirmed defense-in-depth/isolation-escape issue worth patching, but not a drop-everything emergency given the superuser prerequisite and the explicitly unconfirmed code-execution outcome.

Exploit ScenarioDerived

An attacker who has already obtained superuser credentials on automation-controller launches a system-job template with a crafted 'days' value containing spaces, so the unvalidated string is flattened and re-split into extra command-line arguments. Because system jobs run in-process on the control node without container isolation, the injected arguments - including Python's path option - reach the awx-manage process, letting the attacker control its argument vector and the first entry of its module search path. No public exploit code was identified at time of analysis, and the vendor states full remote code execution is not demonstrated because a suitable import gadget is absent.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 23, 2026

Argument injection in Red Hat Ansible Automation Platform 2's automation-controller system-job subsystem allows an authenticated user with superuser privileges to inject arbitrary command-line arguments into the control-plane awx-manage process, gaining control of its argument vector and the first entry of its Python module search path. The root cause is that the system-job template launch endpoint stores a caller-supplied 'days' value without applying the integer validation used elsewhere for that field, and the dispatcher flattens the management-command argument list into a single space-delimited string that the job runner re-splits, so embedded spaces become additional arguments; system jobs run in-process on the control node without the container isolation applied to other job types. Confirmed remote code execution does not follow from the injected arguments alone - it would require an additional import gadget that is not present in the current management commands - so the demonstrated impact is argument injection and search-path control rather than code execution, and no public exploit was identified at time of analysis.

RemediationAI

The available intelligence does not identify a fixed Ansible Automation Platform 2 version, so patch status is unconfirmed at time of analysis; monitor https://access.redhat.com/security/cve/CVE-2026-84724 and https://bugzilla.redhat.com/show_bug.cgi?id=2527222 and apply the Red Hat errata for automation-controller as soon as a versioned fix is published. Because the exploit prerequisite is a superuser account on automation-controller - effectively a platform administrator - the highest-value control is privilege discipline: treat the superuser role as break-glass, audit existing superuser assignments, and remove any account that does not strictly require it, since such an account already possesses broad control-plane power and this flaw mainly broadens it to argv/search-path manipulation. Where system jobs are not operationally required, disable or restrict system-job templates and their launch endpoint, accepting the trade-off that scheduled maintenance jobs relying on that mechanism will stop running; if system jobs are needed, constrain who can edit and launch them and treat system-job templates as privileged configuration. Because the injection rides on the unvalidated 'days' field, deploy a validation or WAF/API-gateway rule that rejects non-integer values for that parameter on the controller launch endpoint, understanding that this is a compensating layer that can be bypassed by API clients speaking directly to the controller and must be re-checked against the eventual vendor fix. Finally, monitor controller hosts for unexpected awx-manage invocations with unusual argument counts or path-related options, and for unexpected writes to the control node's Python module search path, as detection for exploitation attempts that occur before a patch is available.

Affected VersionsENISA

Red Hat Ansible Automation Platform 2.6 for RHEL 9 patch: 0:4.7.17-1.el9ap

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 a classic CWE-88 argument injection (improper neutralization of argument delimiters), arising where a user-controlled value crosses a trust boundary into a process command line. In Ansible Automation Platform 2, the automation-controller component (upstream AWX) exposes a system-job template launch endpoint whose 'days' field is normally constrained by integer validation, but that validation is missing on this code path. The dispatcher then serializes the awx-manage invocation's argument list into a single space-separated string, and the job runner re-splits that string on whitespace, so any spaces the attacker embeds in 'days' are reinterpreted as argument separators. Two design properties amplify the flaw: system jobs are executed in-process on the control node rather than inside the execution environment containers used for ordinary jobs, and the management command is a Django manage.py-style entry point. That gives the attacker control over awx-manage's argv and, via a path option that populates the first entry of the module search path (sys.path), influence over which Python modules are importable - a search-path hijack that could be converted into execution if a suitable import gadget existed on the control node. The affected product maps to CPE cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2 with wildcarded version fields, meaning the advisory does not enumerate specific released builds. Severity is CVE 6.6 under CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L - network reachable and low complexity, but gated behind high privileges, with only low confidentiality, integrity and availability impact and a scope change reflecting that the compromised management process escapes the isolation boundary of ordinary job execution.

Know when Python 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 6.6 MEDIUM
AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L
vuln.today AI 6.6 MEDIUM

Network-reachable API with low complexity but PR:H because only a superuser can reach the endpoint; S:C as injection escapes container isolation into the control node; impacts capped at Low since code execution is unconfirmed.

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

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

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

DescriptionCVE.org

An argument-injection flaw was found in the Ansible Automation Platform automation-controller system-job subsystem. The system-job template launch endpoint stores a user-supplied "days" variable without running the integer validation defined elsewhere for that field, and the dispatcher flattens the management-command argument list into a single string with spaces before the job runner re-splits it, so spaces in the value become additional command-line arguments. Because system jobs are executed in-process on the control node without the container isolation applied to all other job types, an authenticated user with superuser privileges can inject arbitrary arguments - including Python's path option - into the control-plane awx-manage process, controlling its argument vector and the first entry of its module search path. Full remote code execution requires an additional import gadget that is not present in the current management commands, so the demonstrated impact is argument injection with control of the process search path rather than confirmed code execution.

Threat Intelligence Overview

EPSS Score
0.3%
Top 81% exploitable
Prevalence
Medium
enterprise automation platform, common in large orgs but not ubiquitous
Data Quality
4 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Vendor StatusVendor

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