gh-aw: HTTPS egress allowlist bypass via TLS SNI domain fronting
High8.3Published Sep 23, 2026
## Summary GitHub Agentic Workflows generated workflows using `gh-aw-firewall` versions that authorized HTTPS tunnels from the plaintext HTTP `CONNECT` destination without verifying that the TLS ClientHello SNI matched the workflow's domain allowlist. An attacker could connect to an allowlisted shared CDN hostname and then request a different, non-allowlisted hostname inside the TLS tunnel. ## Impact An untrusted or prompt-injected agent running in a generated workflow could bypass HTTPS egress restrictions and communicate with non-allowlisted destinations. This could enable unauthorized outbound communication or data exfiltration from the workflow environment. The bypass affects the default HTTPS filtering path. Trusted AWF-owned sidecars and explicitly allowlisted IP destinations retain their separately scoped behavior. Full SSL Bump content-inspection mode is unchanged. ## Remediation The firewall fix inspects the TLS ClientHello without decrypting application traffic. Connections with missing, blocked, or non-allowlisted SNI are terminated; allowlisted connections are spliced unchanged. Blocked-domain rules take precedence over parent-domain allow rules. Upgrade `gh-aw` ...
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| github/gh-aw Product | < 0.89.17 | 0.89.17 |
Details and references
## Summary GitHub Agentic Workflows generated workflows using `gh-aw-firewall` versions that authorized HTTPS tunnels from the plaintext HTTP `CONNECT` destination without verifying that the TLS ClientHello SNI matched the workflow's domain allowlist. An attacker could connect to an allowlisted shared CDN hostname and then request a different, non-allowlisted hostname inside the TLS tunnel. ## Impact An untrusted or prompt-injected agent running in a generated workflow could bypass HTTPS egress restrictions and communicate with non-allowlisted destinations. This could enable unauthorized outbound communication or data exfiltration from the workflow environment. The bypass affects the default HTTPS filtering path. Trusted AWF-owned sidecars and explicitly allowlisted IP destinations retain their separately scoped behavior. Full SSL Bump content-inspection mode is unchanged. ## Remediation The firewall fix inspects the TLS ClientHello without decrypting application traffic. Connections with missing, blocked, or non-allowlisted SNI are terminated; allowlisted connections are spliced unchanged. Blocked-domain rules take precedence over parent-domain allow rules. Upgrade `gh-aw` to the first release that includes a fixed `gh-aw-firewall` version. Recompile and redeploy existing generated workflows after upgrading; upgrading the compiler alone does not replace firewall versions already pinned in generated workflow lock files. At the time this advisory was drafted, no fixed `gh-aw` release had been published. ## Workarounds No workaround is currently documented. ## References - https://github.com/github/gh-aw-firewall/pull/8878 - https://github.com/github/gh-aw-firewall/commit/7c56dd97cc9938086b2ecf0c61a7344af1ec0dea - https://github.com/github/gh-aw-firewall/security/advisories/GHSA-w6qx-pgrq-2c28
- CVSS 4.0
- CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:L/SI:L/SA:N
- Severity from
- GitHub (reviewed advisory)
More GitHub advisories
All GitHub| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Sep 22 | GitHub Enterprise Server: cross-site scripting | High7.4 | 3.17.*+3 more |
| Sep 22 | GitHub Enterprise Server: server-side request forgery | Critical9.3 | 3.17.*+3 more |
| Sep 22 | GitHub Enterprise Server: insecure direct object reference | Medium6.0 | 3.17.*+3 more |
| Sep 1 | GitHub Enterprise Server: server-side request forgery | High7.7 | No fix yet |
| Sep 1 | GitHub Enterprise Server: race condition | High7.7 | No fix yet |
| Sep 1 | GitHub Enterprise Server: server-side request forgery | High8.2 | 3.17.*+3 more |