Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain job-template admin role
-
DeliveryRead webhook signing key from template
-
ExploitCraft forged GitHub PR webhook with malicious statuses_url
-
InstallSubmit HMAC-signed payload to AWX webhook endpoint
-
C2AWX persists attacker URL in job extra variables
-
ExecuteAWX POSTs status update with Git PAT to attacker endpoint
-
ImpactExfiltrate Git credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) the attacker must hold the admin role on a specific AWX job template - this is an authenticated, low-privilege requirement (CVSS PR:L) but limited to template-level administration, not system-wide AWX admin; (2) that job template must have GitHub webhook integration enabled with a signing key configured, since the signing key is the prerequisite for forging a valid HMAC-signed payload; and (3) a Git Personal Access Token must be configured on the job template, as without a PAT there are no credentials to exfiltrate. Limiting factors: anonymous or unauthenticated external attackers cannot exploit this; exploitation is gated by obtaining template admin access first. The attack is not automatable at scale across random targets because it requires template-specific secrets. SSRF impact against internal services is further constrained by network topology - only hosts reachable from the AWX server are in scope. |
| Impact | The CVSS 7.7 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N) accurately models the core threat: network-reachable, low complexity, requiring only job-template admin privileges, with a Changed scope that elevates impact beyond the AWX instance itself. The C:H rating is grounded in Git PAT exfiltration, which in practice grants the attacker read or write access to source repositories - a significant blast radius in CI/CD environments where AWX orchestrates deployments. EPSS data is not provided; given no KEV listing and no public POC, opportunistic mass exploitation is unlikely. Real-world risk is highest in organizations where AWX job-template admin is granted broadly or where a single PAT is reused across many repositories. The PR:L requirement meaningfully limits exposure: an anonymous external attacker cannot exploit this without first obtaining template admin access. The most credible threat model is an insider or a compromised low-privileged account escalating impact by stealing Git credentials. SSRF to internal network endpoints is a secondary risk - severity depends on what services are reachable from the AWX host. |
| Exploit ScenarioDerived | An attacker who has obtained job-template admin privileges on an AWX instance - whether through legitimate assignment, credential theft, or account compromise - navigates to a webhook-enabled job template, reads the GitHub webhook signing key, and crafts a forged GitHub pull request webhook JSON payload in which pull_request.statuses_url points to an attacker-controlled HTTPS endpoint. The attacker computes a valid HMAC-SHA256 signature over the payload using the stolen key and submits the webhook to AWX's public webhook receiver. AWX validates the signature, persists the malicious statuses_url in job extra variables, and when the job completes, POSTs a status update to the attacker's server with the Git PAT in the Authorization header, fully disclosing the credential. No public POC exists at time of analysis, but the attack mechanics are straightforward given the description. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 18, 2026
Credential exfiltration via SSRF in AWX's GitHub webhook status callback affects Red Hat Ansible Automation Platform 2: an attacker holding admin role on a webhook-enabled job template can forge a signed GitHub pull request webhook with an arbitrary statuses_url, causing AWX to POST authenticated status updates - including the configured Git Personal Access Token in the Authorization header - to an attacker-controlled or internal endpoint. The Changed scope (S:C) in the CVSS 7.7 vector reflects that the leaked PAT extends attacker reach beyond AWX to connected Git repositories and any internal services reachable via SSRF. No public exploit identified at time of analysis, and no CISA KEV listing exists.
RemediationAI
Consult the Red Hat advisory at https://access.redhat.com/security/cve/CVE-2026-71365 for the specific patched package version; an exact fix version is not independently confirmed from available data. As an immediate compensating control, restrict job-template admin role assignments to the minimum necessary users, since the attack requires reading the webhook signing key from the template. Configure network egress policy on the AWX host to allowlist only legitimate Git provider API endpoints (e.g., api.github.com, gitlab.com) and block outbound requests to RFC-1918 address ranges, which neutralizes both the credential exfiltration and the SSRF-to-internal-services risk - note this may require firewall or security group changes and should be tested for operational impact on existing webhook flows. Rotate all Git PATs configured in AWX job templates as a precautionary measure if the exposure window is unclear. Disable GitHub webhook integration on job templates that do not strictly require it until a patch is applied.
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
AWX, the upstream open-source project backing Red Hat Ansible Automation Platform 2 (CPE: cpe:2.3:a:red_hat:red_hat_ansible_automation_platform_2:*), processes incoming GitHub pull request webhooks by extracting the pull_request.statuses_url field directly from the untrusted JSON payload. This URL is written into job extra variables and later consumed by an internal callback process that POSTs status updates to it, including the Git PAT in the Authorization header. CWE-918 (Server-Side Request Forgery) identifies the root cause: the application performs server-initiated HTTP requests to a URL whose host is never validated against an allowlist of trusted Git provider domains (e.g., api.github.com). Because the webhook signing key is readable by job-template admins, the HMAC signature check - the intended trust boundary - is trivially bypassed by anyone already holding that privilege level. The vulnerability sits at the intersection of two design flaws: user-readable signing keys and unsanitized URL persistence.
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:L/PR:L/UI:N/S:C/C:H/I:N/A:N
PR:L because template admin role is required; S:C and C:H reflect PAT exfiltration enabling access to external Git systems; I:N and A:N as exploitation only reads credentials.
Primary rating from Vendor (redhat).
CVSS VectorVendor: redhat
DescriptionCVE.org
A server-side request forgery (SSRF) vulnerability was found in AWX's webhook status callback mechanism. When processing GitHub pull request webhooks, AWX extracts the status callback URL (pull_request.statuses_url) from the incoming webhook payload without validating the target host against the expected Git provider. This URL is persisted in job extra variables and later used to send authenticated status updates. A user with admin role on a webhook-enabled job template can read the template's webhook signing key, forge a signed GitHub webhook payload with an arbitrary statuses_url, and cause AWX to POST status updates to an attacker-controlled or internal URL. The status update request includes the configured Git Personal Access Token (PAT) in the Authorization header, resulting in credential leakage to the attacker-specified endpoint.
Executive ViewAI
Red Hat Ansible Automation Platform 2 (AWX) contains a credential exposure vulnerability in its GitHub webhook functionality that allows administrators to inadvertently exfiltrate Git Personal Access Tokens to attacker-controlled endpoints. Affected organizations face immediate risk of unauthorized repository access, potential Git supply chain compromise, and lateral movement to internal systems reachable via those compromised credentials. This vulnerability impacts any organization using AWX with GitHub webhook integration, creating a direct threat to code integrity and infrastructure security.
No vendor-released patch identified at time of analysis. Interim mitigations include: immediately disable GitHub webhook functionality in AWX, restrict administrator role access through role-based access controls and mandatory multi-factor authentication, implement egress network filtering to prevent Server-Side Request Forgery exploitation to external or internal endpoints, rotate all GitHub Personal Access Tokens and establish mandatory quarterly rotation schedules, and enable comprehensive audit logging of webhook activity and all authentication events.
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
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
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-61015
GHSA-89hq-rjv2-rxvp
NVD
CVE.org
EPSS
VulDB
Exploit-DB