CVE-2026-12726
Description
A flaw was found in the AWX GitHub webhook integration. When processing GitHub pull_request webhooks, the controller stores the pull_request.statuses_url value from the webhook payload without validating that it points to a trusted GitHub API endpoint. If a job template is configured with a GitHub Personal Access Token as its webhook credential, the controller later POSTs that token to the stored callback URL when posting job status updates. An attacker who can submit a correctly signed forged webhook using the job template's webhook_key can redirect the callback to an attacker-controlled URL and exfiltrate the configured GitHub PAT.
Statement
Red Hat rates this issue as Moderate impact. This flaw affects AWX controller deployments that enable GitHub webhooks with status callback configured (webhook_service=github and a GitHub Personal Access Token configured as webhook_credential on the job template).
The controller intentionally uses the configured GitHub PAT to post commit status updates back to GitHub; however, it fails to restrict the callback destination to trusted GitHub API endpoints. When a forged webhook with a valid HMAC signature supplies a malicious statuses_url, the PAT may be sent to an attacker-controlled URL on job completion.
Exploitation requires knowledge of the per-job-template webhook_key used to validate incoming webhook requests. This secret is not controllable by arbitrary GitHub contributors through normal GitHub webhook delivery; it must be obtained through privileged access to the automation controller or compromise/disclosure of the configured shared secret. Additional preconditions include network reachability to the webhook endpoint and network reachability from the controller to the attacker-specified callback URL.
AWX is typically deployed as internal infrastructure management tooling, which may limit practical exposure in many environments, but does not eliminate the issue where GitHub webhook integration with status callback is enabled.
Mitigation
The following practices may reduce exposure to this flaw until a fix is available:
1. Restrict network access to controller webhook endpoints so only trusted GitHub egress IPs or an approved reverse proxy can reach them.
2. Protect job template webhook keys as secrets; restrict Job Template admin access; rotate webhook keys if compromise is suspected.
3. If commit status callback to GitHub is not required, configure GitHub webhooks without a webhook_credential on the job template (this disables PAT transmission on job completion).
4. Monitor controller logs and outbound connections for unexpected callback destinations following webhook-triggered jobs.
Common Vulnerability Scoring System (CVSS) Score Details
Info alert:Important note
CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).
The following CVSS metrics and score provided are preliminary and subject to review.
CVSS v3 Score Breakdown
| Red Hat | NVD | cve.org | |
|---|---|---|---|
| Base Score | 6.3 | N/A | 6.3 |
| Attack Vector | Network | N/A | Network |
| Attack Complexity | High | N/A | High |
| Privileges Required | Low | N/A | Low |
| User Interaction | None | N/A | None |
| Scope | Changed | N/A | Changed |
| Confidentiality | High | N/A | High |
| Integrity Impact | None | N/A | None |
| Availability Impact | None | N/A | None |
Vector
Red Hat: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
cve.org: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N
Understanding the Weakness (CWE)
Confidentiality
Technical Impact: Read Application Data
Integrity
Technical Impact: Execute Unauthorized Code or Commands
Access Control
Technical Impact: Bypass Protection Mechanism
By providing URLs to unexpected hosts or ports, attackers can make it appear that the server is sending the request, possibly bypassing access controls such as firewalls that prevent the attackers from accessing the URLs directly. The server can be used as a proxy to conduct port scanning of hosts in internal networks, use other URLs such as that can access documents on the system (using file://), or use other protocols such as gopher:// or tftp://, which may provide greater control over the contents of requests.
Acknowledgements
Red Hat would like to thank Martin Brodeur (FluentLogic) for reporting this issue.
Frequently Asked Questions
Not sure what something means? Check out our Security Glossary.
Want to get errata notifications? Sign up here.