Skip to main content

Ansible Automation Platform CVE-2026-71465

| EUVDEUVD-2026-85542 LOW
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-09-23 redhat GHSA-j69q-g7fm-7qpm
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 to AAP with launch rights
  2. Delivery
    Submit ad hoc command with limit starting with '-'
  3. Exploit
    limit appended as bare positional arg
  4. Execution
    ansible-core parses it as CLI option
  5. Impact
    Short-circuit flag (--version/--help) alters invocation

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 user (PR:L) with permission to run ad hoc commands, who must supply a limit/host-restriction value that begins with a '-' character so ansible-core misinterprets it as a CLI option. Exploitation is strongly limited today: the injected token displaces the required pattern positional, so only short-circuit flags (--version, --help) are reachable and no arbitrary option or command control is achievable. The description explicitly notes escalation 'would' only occur if a future ansible-core version defaults/makes optional the pattern positional - a non-default, hypothetical upstream change. AC:H reflects this reliance on specific parsing conditions.

Impact

This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The Red Hat-assigned CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N, base 3.1) reflects an authenticated (PR:L), high-complexity (AC:H) argument-injection flaw with only Low integrity impact and no confidentiality or availability impact - an accurate characterization of a latent defect. No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no evidence of exploitation interest. Critically, the description itself states the flaw is 'currently limited to short-circuit flags (--version, --help)' because the injected element displaces the required ansible pattern positional, meaning it cannot presently be turned into meaningful command control - it only becomes dangerous IF ansible-core were ever to make pattern default/optional. This is effectively a defense-in-depth / hardening fix for a code-quality asymmetry (RunAdHocCommand uses args.append(limit) while RunJob correctly uses args.extend(['-l', limit])). The 'Privilege Escalation' tag overstates the real-world impact; CWE-88 argument injection with I:L is more accurately an input-handling weakness. No key data is missing that would change the assessment - the low score, low CWE impact, and absence of exploitation signals all agree.

Exploit ScenarioDerived

An authenticated Ansible Automation Platform user with permission to launch an ad hoc command supplies a limit value beginning with a dash (e.g. --version), which build_args() appends as a bare positional so ansible-core parses it as a CLI option rather than a host filter. In the current code path this only reaches short-circuit flags like --version/--help because the injected token displaces the mandatory pattern positional, so the practical effect is a malformed/aborted command rather than arbitrary option control. No public exploit code was identified at time of analysis.

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

Argument injection in the ad hoc command builder of Red Hat Ansible Automation Platform 2 lets an authenticated user who is permitted to run ad hoc commands smuggle ansible CLI options by passing a host-restriction (limit) value beginning with a hyphen, which ansible-core then parses as an option flag. Impact today is minimal (CVSS 3.1, CWE-88): because the injected token displaces the required pattern positional argument, only short-circuit flags such as --version and --help are reachable, so integrity impact is limited to low and no arbitrary option or command control is achievable. There is no public exploit identified at time of analysis, and the issue would only escalate if a future ansible-core release were to default or make optional the pattern positional - a hypothetical, non-default upstream change rather than current behavior.

RemediationAI

No vendor-released patch is identified in the available data, so treat this as unfixed at time of analysis and monitor the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-71465 and Bugzilla 2512375 for the fixing erratum and version. The most effective compensating control is least-privilege RBAC: restrict the ability to run ad hoc commands (and the associated limit parameter) to trusted operators only, since exploitation requires an authenticated account with that specific permission - the trade-off is reduced operational flexibility for day-to-day users. Where ad hoc command access must be broadly granted, validate host-restriction input at the boundary and reject or strip any limit value whose first character is - (or, more strictly, enforce a hostname/pattern allowlist), accepting the trade-off that legitimate values containing leading hyphens become unusable. Teams with source control over their automation controller deployment can additionally apply the upstream-style fix locally by changing the ad hoc builder to pass the limit as a bound option (-l <limit>) rather than a bare positional, mirroring the already-correct RunJob implementation; this is a code change that must be re-applied on upgrade. Because current exploitability is capped at short-circuit flags such as --version and --help, prioritization can remain low relative to remediations with confirmed active exploitation.

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 flaw is a textbook CWE-88 argument-delimiter injection in Ansible's ad hoc command construction code. RunAdHocCommand.build_args() appends the user-supplied limit value as a bare positional argument via args.append(limit), whereas the equivalent RunJob path correctly binds it as an option using args.extend(['-l', limit]). Because the raw value is placed in a positional slot, a value whose first character is - is reinterpreted by the ansible-core argument parser as a command-line switch rather than a host restriction, letting the caller influence the CLI invocation. The practical reach of the injection is constrained by the surrounding argument grammar: the injected element shifts the real pattern positional out of position, so only flags that terminate execution immediately (--version, --help) are usable. The CVSS vector AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N reflects a network-reachable, authenticated-only, high-complexity attack with low integrity impact and no confidentiality or availability effect. CPE data identifies Red Hat Ansible Automation Platform 2 as the affected product family, tracked by Red Hat via CVE-2026-71465 and Bugzilla 2512375.

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

Authenticated API user (PR:L) over the network (AV:N); AC:H because the injection is self-limiting to short-circuit flags; only Low integrity impact, no C or A.

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

RunAdHocCommand.build_args() appends limit as bare positional (args.append(limit)) instead of using args.extend(['-l', limit]) like RunJob. A limit beginning with - is parsed as an ansible CLI option. Currently limited to short-circuit flags (--version, --help) since injected element displaces required pattern positional. Would escalate if ansible-core ever defaults pattern.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Medium
Red Hat Ansible Automation Platform, common enterprise automation but not everywhere
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

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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