# CVE-2026-79717: Galaxy_ng: galaxy_ng: blind ssrf via namespace avatar_url with no private-address restriction

Status: published. Published: 2026-08-25. Updated: 2026-11-06.

A server-side request forgery (SSRF) vulnerability was found in galaxy_ng, the Ansible Galaxy server plugin for Pulp. An authenticated user with namespace management permissions can set a namespace avatar URL to an arbitrary address, including internal networks, loopback, or cloud instance metadata endpoints. A background worker fetches that URL without checking the destination, which lets the attacker probe internal services and enumerate reachable IP addresses. The HTTP client is also configured without an overall timeout, so a slow or non-responsive target can pin workers and cause a denial of service.

## Remediation

- workaround: There is no complete mitigation for this vulnerability. The following measures can reduce risk:

1. Restrict galaxy.change_namespace and galaxy.add_namespace to trusted administrators only, so fewer users can trigger avatar downloads.
2. In cloud deployments, protect instance metadata with hop-limited controls such as AWS IMDSv2 with HttpPutResponseHopLimit=1.
3. Apply egress filtering on Pulp worker nodes so they cannot reach RFC1918, loopback, link-local, or cloud metadata addresses that are not required for normal Galaxy operation. (source: CNA: redhat)

## Affected products and versions

- Red Hat / Red Hat Ansible Automation Platform 2 (ansible-automation-platform-24/hub-rhel8): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Ansible Automation Platform 2 (ansible-automation-platform-25/hub-rhel8): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Ansible Automation Platform 2 (ansible-automation-platform-26/hub-rhel9): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Ansible Automation Platform 2 (ansible-automation-platform-27/hub-rhel9): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Ansible Automation Platform 2 (python3.11-galaxy-ng): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Ansible Automation Platform 2 (python3.12-galaxy-ng): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Ansible Automation Platform 2 (python3x-galaxy-ng): Version range not reported. Source: CNA: redhat
- Red Hat / Red Hat Ansible Automation Platform 2 (python-galaxy-ng): Version range not reported. Source: CNA: redhat

## Severity and prioritization

- CVSS 3.1: 6.4 (medium); CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:L; source: CNA: redhat

- CISA KEV: No listing in collected sources

- EPSS: 0.37% as of 2026-11-05; percentile 31.55%

- SSVC: exploitation none; automatable no; technical impact partial; source ADP: CISA-ADP

- Weaknesses: CWE-918

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://access.redhat.com/security/cve/CVE-2026-79717 (CNA: redhat; vdb-entry, x_refsource_REDHAT)

- https://bugzilla.redhat.com/show_bug.cgi?id=2523431 (CNA: redhat; issue-tracking, x_refsource_REDHAT)

- https://github.com/ansible/galaxy_ng (CNA: redhat)

## Provenance

- CNA: redhat: https://www.cve.org/CVERecord?id=CVE-2026-79717; retrieved 2026-11-06; source updated 2026-11-06

- FIRST EPSS: https://api.first.org/data/v1/epss?cve=CVE-2026-79717; retrieved 2026-11-06; source updated Not reported

Revision: 32a5a1820475c5c488d288e61869a4a171f46c8f754ecda0105e9634a4496ef9

Canonical: https://y2.dev/cve/CVE-2026-79717

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.