Automated Threat Modeling

Brief Summary: CVE-2026-11332 Argument Injection in Ansible Core ansible-galaxy Role Install

A short review of CVE-2026-11332, a high-severity argument injection vulnerability in ansible-core that lets malicious role authors achieve arbitrary code execution through crafted dependency specifications in meta/requirements.yml files.

CVE Analysis

10 min read

ZeroPath CVE Analysis
ZeroPath CVE Analysis

2026-06-05

Brief Summary: CVE-2026-11332 Argument Injection in Ansible Core ansible-galaxy Role Install
Experimental AI-Generated Content

This CVE analysis is an experimental publication that is completely AI-generated. The content may contain errors or inaccuracies and is subject to change as more information becomes available. We are continuously refining our process.

If you have feedback, questions, or notice any errors, please reach out to us.

[email protected]

Introduction

A missing two-character delimiter in a git clone command invocation within ansible-core allows arbitrary code execution on any machine that installs a malicious Ansible Galaxy role. CVE-2026-11332 is scored at CVSS 7.8 (High) and rated "Important" by Red Hat. It turns the routine ansible-galaxy role install workflow into a supply chain attack vector, in which a crafted meta/requirements.yml file can inject arbitrary git configuration flags.

Approximately 110 verified companies across industries and geographies use Red Hat Ansible Automation Platform, and the broader network automation market is projected to reach $50.5 billion by 2035. The environments potentially exposed are enterprise IT automation setups around the world.

Technical Information

Root Cause: Missing End-of-Options Delimiter

CVE-2026-11332 is classified under CWE-88: Improper Neutralization of Argument Delimiters in a Command ('Argument Injection'). MITRE defines this weakness as a product constructing a string for a command to be executed by a separate component without properly delimiting the intended arguments, options, or switches within that command string. It differs from OS command injection (CWE-78): argument injection adds new options or switches to an existing command instead of injecting entirely new commands.

The flaw is in ansible-core's ansible-galaxy role install command. When a user installs a role, the command processes dependency specifications from the role's meta/requirements.yml file. ansible-core passes the src and name fields from these dependency entries directly to git clone as arguments through Python's Popen, with no -- separator to delimit command options from positional arguments. Without that end-of-options delimiter, git interprets any content in the src field that begins with a dash (-) as a command-line flag rather than as a repository URL.

The -- separator is a standard POSIX convention that marks the end of command-line options, so every argument after it is treated as a positional parameter and never as a flag. Its omission is the entire root cause.

Attack Flow

The attack runs in five steps:

  1. An attacker crafts an Ansible role and publishes it to Ansible Galaxy or hosts it in a git repository. The role contains a meta/requirements.yml file with a poisoned src field.

  2. The src field contains a git configuration flag such as -ccore.sshCommand=sh -c "malicious_command", while the name field provides a valid repository URL. The core.sshCommand git configuration option is particularly dangerous because it lets the caller specify an arbitrary command to run in place of the default SSH binary.

  3. A victim runs ansible-galaxy role install to install the malicious role directly, or installs any role that depends on the malicious role transitively through its own meta/requirements.yml dependency chain.

  4. When ansible-core processes the dependency, it builds a git clone command through Popen. Because no -- separator sits between the flags and the positional arguments, git reads the injected -ccore.sshCommand content as a legitimate configuration option.

  5. The injected core.sshCommand value makes git execute the attacker-specified command with the privileges of the ansible process. The attacker now has full arbitrary code execution on the victim's machine.

Exploitation Prerequisites

The attack vector is network based, because the malicious role is distributed through Ansible Galaxy or a git repository. Publishing a role needs no authentication, but the attack does need user interaction: the victim must run ansible-galaxy role install on a role containing the malicious dependency. The attack complexity is considered high. The attacker has to craft a role with specific meta/requirements.yml content and then convince a user to install it, or place the malicious role as a transitive dependency of a popular role.

Even with the social engineering step, successful exploitation means total system compromise, with high confidentiality, integrity, and availability impact through arbitrary code execution.

Supply Chain Amplification

A single compromised role that gains popularity on Ansible Galaxy could affect thousands of downstream users through transitive dependencies. Organizations that routinely install community roles as part of their automation workflows face the highest risk, because the malicious payload would execute automatically during the dependency resolution phase of role installation.

Historical Precedent

This class of vulnerability is well documented. CVE-2022-36069 affected a Python-based dependency management tool in which git command construction allowed injection of optional arguments beginning with a dash (CWE-88). CVE-2016-10033 was an argument injection in a mail processing function, where technically valid email addresses inserted -o and -X switches to write unexpected files and execute programs. These precedents confirm that argument injection through a missing -- delimiter is a repeatable, well-understood attack pattern, which makes it more likely that CVE-2026-11332 will be weaponized.

Affected Systems and Versions

The vulnerability affects ansible-core, specifically the way the ansible-galaxy role install command processes meta/requirements.yml dependency specifications. As of the disclosure date (2026-06-05), the Bugzilla entry (bug 2485379) shows the "Fixed In Version" field as blank and the bug status as NEW. That indicates no patched version has been formally released.

Red Hat has issued security advisory RHSA-2026:11332 related to this CVE. RHSA-2026:13508 addresses security vulnerabilities in Red Hat Ansible Automation Platform 2.6. Tenable has published a plugin (Nessus ID 315971) for Fedora 45 that covers ansible and ansible-core.

Organizations should watch Red Hat advisory channels and the ansible-core release schedule for the next Z release that includes the fix. Z releases follow a 4-week patch cadence.

Vendor Security History

Red Hat runs a dedicated vulnerability management process for Ansible Automation Platform, described in its official blog post on assessing Ansible vulnerabilities. Red Hat also publishes an Ansible Automation Platform CVEs Addressed Report that tracks all security vulnerabilities across the platform. Security response is coordinated through [email protected] and tracked in Bugzilla entries with assigned severity ratings.

Red Hat has issued earlier advisories for Ansible-related vulnerabilities, including RHSA-2026:13508, which addressed security vulnerabilities in Ansible Automation Platform 2.6 and carries a CRITICAL severity rating according to third-party vulnerability intelligence. The ansible-core project follows a regular 4-week patch cadence for security fixes, a structured approach to vulnerability response.

The wider pattern of CWE-88 vulnerabilities in dependency management tooling (CVE-2022-36069 in a Python dependency manager, CVE-2016-10033 in mail processing) suggests a systemic issue in software that builds subprocess commands from user-controlled input, rather than a problem unique to Ansible's development practices.

References

Detect & fix
what others miss

Works with
  • GitHub
  • GitLab
  • Bitbucket
  • Azure DevOps Services
  • Gerrit
  • CVS
  • Jira
  • Linear
  • Slack
  • Security Compass
Explore integrations
Security magnifying glass visualization