Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAuthenticate to galaxy_ng API
-
DeliveryHost git repo with malicious ref name
-
ExploitSubmit legacy v1 role import
-
InstallPulp worker runs do_git_checkout with shell=True
-
C2Shell metacharacters in ref execute
-
ExecuteCode runs as pulp worker
-
ImpactPivot to AAP secrets
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires four concrete conditions, all derivable from the description and CVSS vector: (1) the target galaxy_ng deployment must have the setting GALAXY_ENABLE_LEGACY_ROLES=True, which is explicitly not the default; (2) the attacker must hold a low-privileged authenticated account on the Galaxy API (CVSS PR:L) able to call the legacy v1 role import endpoint; (3) the attacker must control a git repository reachable by the pulp worker so they can create a branch or tag whose name contains shell metacharacters; and (4) the malicious ref name must survive transport to do_git_checkout() and be passed into subprocess.run(..., shell=True). No user interaction on the victim side is required (UI:N). Limiting factors are the non-default configuration flag, the authentication requirement, and CVSS AC:H reflecting that the attacker must orchestrate the malicious git ref and import flow together. |
| Impact | The signals point to a real but conditional risk rather than a mass-exploitation issue. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, base 7.5) correctly reflects that the attacker needs network access plus a low-privileged authenticated account, and that AC is High because exploitation requires the non-default GALAXY_ENABLE_LEGACY_ROLES=True setting plus the ability to publish a malicious git ref. The vulnerability is not in CISA KEV and EPSS data was not supplied, so there is no evidence of active exploitation; likewise no public PoC was referenced, so exploitation status is 'no public exploit identified at time of analysis.' The C:H/I:H/A:H impact is credible because code execution lands on the pulp worker, which typically holds credentials and content-signing material. Priority should be high specifically for AAP 2 operators who have enabled legacy roles, and medium-low elsewhere; the most important caveat is that affected/fixed versions are not enumerated in the input, so defenders must rely on the Red Hat advisory to confirm exposure. |
| Exploit ScenarioDerived | An attacker registers a low-privileged account on a galaxy_ng instance where GALAXY_ENABLE_LEGACY_ROLES is enabled, then publishes a git repository (e.g., on GitHub) containing a branch or tag named something like |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 16, 2026
Remote code execution in galaxy_ng's legacy role import API (v1) allows an authenticated user controlling a git repository to execute arbitrary commands on the pulp worker by crafting a branch or tag name containing shell metacharacters. The flaw stems from unsanitized git ref interpolation into a subprocess.run() call with shell=True inside do_git_checkout(), and only affects deployments where GALAXY_ENABLE_LEGACY_ROLES is explicitly enabled (non-default). No public exploit identified at time of analysis.
RemediationAI
Patch availability is not stated explicitly in the supplied data, so treat this as 'Patch available per vendor advisory' and consult https://access.redhat.com/security/cve/CVE-2026-12398 and https://bugzilla.redhat.com/show_bug.cgi?id=2489180 for the exact fixed galaxy_ng / Ansible Automation Platform 2 builds. The simplest compensating control is to set GALAXY_ENABLE_LEGACY_ROLES=False (the default), which removes the vulnerable v1 role import endpoint entirely; the trade-off is that users can no longer import legacy Galaxy v1 roles and must migrate to collections. If legacy roles must remain enabled, restrict who can authenticate to the Galaxy API and who can submit role imports (limit to trusted internal users), and front the API with a reverse proxy that blocks POSTs to the v1 role import endpoint from untrusted networks. As a deeper hardening measure, run the pulp worker under a dedicated low-privilege account in a sandbox (container with no outbound network, read-only FS) so that command execution via a malicious git ref cannot pivot to secrets or signing keys.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
galaxy_ng is the Red Hat Ansible Galaxy content service that ships as part of Red Hat Ansible Automation Platform 2 (per the provided CPEs). The vulnerable code path lives in the legacy v1 role import API, which clones user-supplied git repositories on a pulp worker to import Ansible roles. The do_git_checkout() helper builds a shell command string that concatenates a git ref (branch or tag name) supplied by the remote repository and then runs it through Python's subprocess.run(..., shell=True), so the shell - not git - parses the ref. This is a textbook CWE-78 (OS Command Injection): metacharacters such as ;, &&, $(...) or backticks embedded in the ref are interpreted by /bin/sh and executed in the worker context.
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
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable API (AV:N) but requires non-default GALAXY_ENABLE_LEGACY_ROLES and attacker-controlled git ref (AC:H); needs an authenticated account (PR:L); RCE on pulp worker yields full C/I/A impact.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
A command injection vulnerability was found in galaxy_ng. The do_git_checkout() function in the legacy role import API (v1) interpolates unsanitized git ref names (branch/tag names) into shell commands executed via subprocess.run() with shell=True. An authenticated user who controls a git repository can create a branch or tag with shell metacharacters in the name to achieve remote code execution on the pulp worker. The vulnerable endpoint is only reachable when GALAXY_ENABLE_LEGACY_ROLES is set to True, which is not the default configuration.
Executive ViewAI
A remote code execution vulnerability in Ansible Galaxy NG's legacy role import API allows authenticated users to execute arbitrary code on the pulp worker service, creating a risk vector for insider threats and compromised repository credentials. This affects organizations where legacy role imports are explicitly enabled, potentially compromising the entire automation infrastructure reliant on this service.
No vendor-released patch identified at time of analysis. Interim mitigations: disable GALAXY_ENABLE_LEGACY_ROLES if operationally feasible; restrict and rotate repository credentials; implement network segmentation to isolate pulp workers from untrusted networks; implement audit logging on role import operations.
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
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Affected Products (CPE)CVE.org
Missing authorization checks in the Red Hat Ansible Automation Platform 2 automation-controller allow an authenticated o
Authenticated users who hold permission to create or modify a project within a single organization can execute arbitrary
Privilege escalation and remote code execution on managed hosts is possible in Red Hat Ansible Automation Platform 2 bec
Credential disclosure in Red Hat Ansible Automation Platform 2.5 and 2.6 allows any authenticated user to retrieve plain
Server-side request forgery in the Red Hat Ansible Automation Platform 2 Controller's HashiCorp Vault credential plugin
Privilege escalation in Red Hat Ansible Automation Platform 2 (built on the AWX upstream project) lets an authenticated
Arbitrary file write in pulpcore's FilesystemExport feature allows an authenticated administrator to escape the intended
Symlink-following file overwrite on the Ansible control node is possible in ansible-core when a user runs `ansible-galax
Stored cross-site scripting in the automation-controller component of Red Hat Ansible Automation Platform 2 lets an auth
An authenticated automation-controller administrator in Red Hat Ansible Automation Platform 2 can turn the administrator
Jinja2 template injection in Ansible Operator Plugins (CWE-1336) lets an authenticated Kubernetes user who can create or
Missing object-level authorization in the JobTemplate copy endpoint (CopyAPIView) of AWX and Red Hat Ansible Automation
EUVD-2026-37124
GHSA-6hw7-j4jw-wpff
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB