The gh-aw CLI proxy accepted environment values supplied from sandboxed code and merged them into the environment of a more privileged sidecar. The GH_BROWSER variable can select the browser launched by gh browse. In the researcher's controlled test, this converted a browsing helper call into execution under the sidecar's token-bearing process environment,…
Case · DiggingBeagle record
gh-aw sandbox controlled a credential sidecar browser command
Caller-controlled GH_BROWSER in the gh-aw sidecar reached a process holding GitHub credentials, exposing a token despite the agent sandbox boundary.
Authenticated gh-aw workflow with code execution already inside its sandbox, affected credential sidecar before the fixed release boundary described in GHSA-9jxf-w4wc-5g93. Per-job token exposure demonstrated, not cross-tenant GitHub compromise.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Impact
- Band 3 of 4
- Evidence
- Grade B
- Remediation
- fixed reported
- AI role
- AGAINST AI
Basis and provenance
GHSA-9jxf-w4wc-5g93 identifies GH_BROWSER environment inheritance and prints a live test ghs_ token from the sidecar. The vulnerability is distinct from the advisory's URL parsing flaw. GitHub advisory metadata says 0.91.13 patched; earlier remediation prose has conflicting release references.
Impact basis: A sandbox-controlled environment field reached the privileged gh browse helper and disclosed the actual job credential in the controlled workflow. This required attacker-accessible code inside the workflow sandbox, not unauthenticated Internet access.
Assessed Oct 19, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-GHAW-CLI-PROXY-ENV · GHSA-9jxf-w4wc-5g93: sandbox credential sidecar exfiltration
At a glance
The sidecar inherited authority the less-trusted client was never meant to receive; restricting direct network access would not revoke the helper process token.
Read the implicationsThe advisory text mentions v0.91.12 as the fix while structured affected/patched metadata names v0.91.13. Treat v0.91.13 as the conservative minimum and recompile existing workflows. The demonstrated token was scoped to the test job, not a shared tenant credential.
Limits and uncertaintyFull account
The gh-aw CLI proxy accepted environment values supplied from sandboxed code and merged them into the environment of a more privileged sidecar. The GH_BROWSER variable can select the browser launched by gh browse. In the researcher's controlled test, this converted a browsing helper call into execution under the sidecar's token-bearing process environment, disclosing a real ghs_ job credential.
The starting prerequisite matters. The attacker needed execution in the Agentic Workflow sandbox, not just the ability to send a repository issue from anywhere. The lost boundary was between sandbox-owned execution parameters and the credential custodian; the GitHub credential's eventual reach depended on the permissions granted to that particular job. A separately configured long-lived token could raise the consequence, but the advisory did not establish such a token in every deployment.
The disclosure includes conflicting patch-version descriptions: the advisory metadata identifies 0.91.13 while the body describes a 0.91.12 mitigation. A conservative operational assessment checks the installed sidecar artifacts and regenerated workflow lockfiles at 0.91.13 or later. The fix is effective only if the launched subprocess receives server-owned environment values and cannot inherit an attacker-chosen browser command.
Claims & evidence
CLM-GHAW-CLI-PROXY-ENVThe gh-aw CLI proxy accepted a caller-provided GH_BROWSER environment value and used it when running gh browse in a credential-holding sidecar.supported
Basis: reported finding
- supportsGHSA-9jxf-w4wc-5g93: sandbox credential sidecar exfiltrationprimary disclosure
Description, issue 1 GH_BROWSER; Resolution and patched-version metadata
Implications
The sidecar inherited authority the less-trusted client was never meant to receive; restricting direct network access would not revoke the helper process token.
Controls and mitigations
- Reject caller-supplied process environments and keep the real GitHub bearer token outside commands exposed to sandboxed code.
Unknowns and contradictions
- The advisory text mentions v0.91.12 as the fix while structured affected/patched metadata names v0.91.13. Treat v0.91.13 as the conservative minimum and recompile existing workflows. The demonstrated token was scoped to the test job, not a shared tenant credential.
Sources and citation
Material revision history
- Oct 19, 2026 · Published version · first publication · revision 174
- Oct 19, 2026 · Canonical change recorded · material revision · revision 175Public fields changed: assessment_profile