Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain leaked unexpired format=full GCE identity token
-
DeliveryReplay token to google-instance-identity endpoint
-
ExploitEndpoint skips audience (aud) validation
-
ExecutionReceive workspace agent session token
-
ImpactImpersonate agent until next workspace build
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service Proxy/intermediary controls
|
| Exploitation Conditions | Only deployments running workspaces on Google Compute Engine that use GCP instance-identity authentication for agents (auth mode other than token) are affected. The attacker must already possess a genuine, unexpired GCE identity token that uses format=full and was minted for a different audience/relying party, sourced from a VM that backs an agent on that workspace's latest build. Limiting factors: tokens cannot be forged because Google's signature and expiry are still verified; the identity token's lifetime is roughly one hour, so the window to replay is short; impact is scoped to a single workspace agent's session token (valid only until the next workspace build); and deployments using format=standard tokens for third-party services or token authentication are not exploitable. |
| Impact | This is a credible but conditional authentication-bypass (confused-deputy, CWE-441) in Coder's GCP instance-identity agent endpoint, confirmed by the vendor GHSA-24vh-q7rg-243w advisory and the VulnCheck advisory. The supplied CVSS 4.0 vector (8.3/High) reads AV:N/AC:L/AT:P/PR:N/UI:N with VC:H/VI:L - network-reachable, no privileges or user interaction, but carrying an explicit Attack Requirement (AT:P) that mirrors the real prerequisite: the attacker must first obtain a genuine, unexpired format=full GCE identity token minted for another relying party. The vuln.today decision label is 'this_week', consistent with a serious issue that is not an active-exploitation emergency. No CISA KEV listing and no EPSS score are present in the input, and no public exploit code is referenced (the two references are vendor/coordinator advisories, not PoC); so there is no confirmed active exploitation. The gating factor is token acquisition, not endpoint access - the endpoint still verifies Google's signature and expiry, so tokens cannot be forged, and the vendor states impact is limited to a single agent's credential. Net: a real, prioritize-this-week issue for the specific affected configuration rather than a mass-exploitable internet-wide threat; the AT:P/token-leak dependency meaningfully lowers real-world likelihood versus the raw score. |
| Exploit ScenarioDerived | An attacker obtains a valid, unexpired format=full GCE instance-identity token that was minted for a different relying party - for example from VM logs, a proxy, or a third-party service that legitimately receives such tokens - from a VM backing a Coder agent on its workspace's latest build. They replay that token to POST /api/v2/workspaceagents/google-instance-identity, and because the endpoint never checks the audience (aud) claim, it returns that workspace agent's session token, which stays valid until the workspace's next build (well beyond the token's ~1-hour life). No public exploit code is identified in the provided data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Coder deployments that run workspace agents on Google Compute Engine with GCP instance-identity authentication accept replayed GCE identity tokens because the POST /api/v2/workspaceagents/google-instance-identity endpoint never validated the token's audience claim, allowing an attacker holding an unexpired format=full token minted for a different relying party to exchange it for that workspace agent's session token. The resulting agent token stays valid until the workspace's next build, well past the identity token's roughly one-hour lifetime. Affected releases are those before 2.29.21 and the 2.30.0-2.34.11, 2.35.0-2.35.8, 2.36.0-2.36.6 and 2.37.0-2.37.3 ranges, fixed in 2.38.0 and the listed backports; the flaw is unauthenticated per the supplied vector (PR:N) but conditional, since the attacker must already possess a genuine, unexpired token from a VM backing an agent on the workspace's latest build, and no public exploit was identified at time of analysis. The vendor advisory credits independent reports from a customer security team and an external researcher.
RemediationAI
Vendor-released patch: upgrade to 2.38.0, or to the backport matching your branch - 2.37.4, 2.36.7, 2.35.9, 2.34.12 or 2.29.21 - which makes the endpoint require the GCP identity token's aud claim to equal 'coder' and reject other audiences with 401 Unauthorized (fix in PR #29765, described in https://github.com/coder/coder/security/advisories/GHSA-24vh-q7rg-243w). The standard Coder agent already requests audience=coder, so no agent change is needed; custom clients that request a different audience must be updated to request audience=coder or they will stop authenticating. If upgrading is not immediately possible, the vendor's documented workarounds are to switch affected templates to token authentication (auth = "token") and then restart workspaces so new agent tokens are issued - noting this abandons GCP instance identity for those templates - and to stop logging or forwarding GCE identity tokens from workspace VMs, using format=standard tokens for third-party services since those cannot be exchanged at this endpoint. Agents whose session tokens may already have been replayed remain valid until the workspace's next build, so restarting affected workspaces is required to invalidate them.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-441 (confused deputy) applies here: GCP Compute Engine instance-identity tokens are signed JWTs whose 'aud' claim binds the token to its intended relying party, and Coder's agent authentication endpoint verified Google's signature and expiry but skipped that binding check. Because signature and expiry were still enforced, tokens cannot be forged - the weakness is replay of a legitimately minted token presented to the wrong verifier. The exposure is further narrowed by GCP token properties: only format=full identity tokens are accepted by the endpoint, and only tokens originating from a VM that backs an agent on the workspace's current build can be exchanged for that agent's session token; format=standard tokens, which are intended for third-party services, cannot be exchanged this way. The fix in PR #29765 requires the 'aud' claim to equal 'coder' and returns 401 Unauthorized for any other audience, which is transparent to the standard Coder agent because it already requests that audience; custom clients that request a different audience must be updated. The vulnerable code lives in the Go module go/github.com/coder/coder/v2. The trigger conditions beyond the missing audience comparison are not described in the available sources.
Know when Coder 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N
AC:H because the attacker must first obtain a valid, unexpired format=full identity token minted for another party; PR:N/UI:N as the endpoint itself needs no auth; C:H from agent session-token theft, I:L, A:N.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
Coder before 2.29.21, 2.30.0 before 2.34.12, 2.35.0 before 2.35.9, 2.36.0 before 2.36.7, and 2.37.0 before 2.37.4 does not validate the audience claim of GCE instance-identity JWTs at the POST /api/v2/workspaceagents/google-instance-identity endpoint. Attackers who obtain an unexpired format=full identity token minted for another relying party can replay it to obtain that workspace agent's session token, which remains valid until the workspace's next build.
Technical POC Analysis
Evidence caveat: the only supplied artefact is advisory GHSA-24vh-q7rg-243w.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Coder workspace deployments on Google Compute Engine are exposed to a token replay vulnerability that could allow an attacker to impersonate a workspace agent and persist access until the next workspace build. Security leadership should prioritize remediation for internet-facing Coder instances, as unauthorized access to development environments could lead to code or data compromise.
No vendor-released patch identified at time of analysis. As interim mitigation, restrict network access to the vulnerable endpoint to only trusted source IPs (e.g., GCE instances), shorten the lifetime of workspace agent tokens by increasing rebuild frequency, and monitor for anomalous token exchange requests. Additionally, enforce least privilege on workspace agents and isolate affected workspaces until patched.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Coder allows organizations to provision remote development environments via Terraform. Rated high severity (CVSS 8.1), t
Coder allows organizations to provision remote development environments via Terraform. Prior to 2.26.5, 2.27.7, and 2.28
code-server is vulnerable to Inefficient Regular Expression Complexity. Rated high severity (CVSS 7.5), this vulnerabili
Versions of the package code-server before 4.10.1 are vulnerable to Missing Origin Validation in WebSockets handshakes.
Credential theft in Coder (before 2.29.20, 2.33.0 through 2.33.11, 2.34.0 through 2.34.7, and 2.35.0 through 2.35.3) let
Authenticated Coder users who control a modified workspace agent can redirect the control plane's workspace-agent API re
Coder allows oragnizations to provision remote development environments via Terraform. Rated high severity (CVSS 8.2), t
Coder self-hosted deployments expose an unauthenticated account-enumeration oracle that lets remote attackers distinguis
IP spoofing in the Coder platform (versions before 2.34.7) allows unauthenticated remote attackers to bypass per-IP rate
Cross-organization file disclosure in Coder's provisioner daemon (versions 2.30.0 through 2.34.7) lets an authenticated
Information disclosure in Coder 2.26.0 through 2.34.7 lets authenticated users who have been granted workspace 'use' acc
Open redirect in Coder workspace-app proxy (versions 2.0.0 through 2.34.7) lets unauthenticated attackers craft links on
EUVD-2026-112392
GHSA-j9wc-wg7r-6rm3
NVD
CVE.org
Exploit-DB