Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as automation-controller superuser
-
DeliveryLaunch system-job with space-laden 'days' value
-
ExploitBypass missing integer validation, args re-split
-
ExecutionInject Python path option into awx-manage
-
ImpactControl 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L
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.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
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
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
Attack Technique
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
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
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
EUVD-2026-85616
GHSA-q3jc-p8r9-qrvp
NVD
CVE.org
EPSS
Exploit-DB