Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-5g4w-3vw9-478w

Опубликовано: 06 июл. 2026
Источник: github
Github: Прошло ревью
CVSS3: 5.8

Описание

Coder's subdomain workspace app routing trusts unauthenticated X-Forwarded-Host header, enabling cross-app data access

Summary

The workspace app proxy resolves the target app from httpapi.RequestHost() which prefers the X-Forwarded-Host header over the real Host header. No middleware strips X-Forwarded-Host before routing and the header is not browser-forbidden so client-side JavaScript can set it on fetch() calls.

Note: Practical exploitation requires subdomain app routing (wildcard hostname) enabled, a victim who visits the attacker's shared app and a deployment whose upstream proxy does not strip X-Forwarded-Host.

Impact

App session cookies are scoped to the wildcard parent domain so the browser attaches them to any app subdomain. An attacker who controls a shared workspace app can serve JavaScript that sends same-site requests with a forged X-Forwarded-Host pointing at a victim's private app. The server routes by the attacker-controlled header but authorizes with the victim's cookie which lets the attacker read the victim's private app responses. Subdomain app routing must be enabled and no upstream proxy may strip X-Forwarded-Host.

Patches

The fix trusts X-Forwarded-Host only from configured trusted proxies and otherwise resolves the routing host from the verified request host.

The fix was backported to all supported release lines:

Release linePatched version
2.34v2.34.2
2.33v2.33.8
2.32v2.32.7
2.29 (ESR)v2.29.17

Workarounds

Place an upstream reverse proxy that strips or overwrites X-Forwarded-Host on untrusted requests.

Resources

  • Fix: #26204

Credits

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

Пакеты

Наименование

github.com/coder/coder/v2

go
Затронутые версииВерсия исправления

>= 2.34.0, < 2.34.2

2.34.2

Наименование

github.com/coder/coder/v2

go
Затронутые версииВерсия исправления

>= 2.33.0, < 2.33.8

2.33.8

Наименование

github.com/coder/coder/v2

go
Затронутые версииВерсия исправления

>= 2.30.0, < 2.32.7

2.32.7

Наименование

github.com/coder/coder/v2

go
Затронутые версииВерсия исправления

< 2.29.17

2.29.17

EPSS

Процентиль: 11%
0.00208
Низкий

5.8 Medium

CVSS3

Дефекты

CWE-345
CWE-441

Связанные уязвимости

CVSS3: 5.8
nvd
2 месяца назад

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, the workspace app proxy resolves the target app from `httpapi.RequestHost()` which prefers the `X-Forwarded-Host` header over the real `Host` header. No middleware strips `X-Forwarded-Host` before routing and the header is not browser-forbidden so client-side JavaScript can set it on `fetch()` calls. Practical exploitation requires subdomain app routing (wildcard hostname) enabled, a victim who visits the attacker's shared app and a deployment whose upstream proxy does not strip `X-Forwarded-Host`. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 trusts `X-Forwarded-Host` only from configured trusted proxies and otherwise resolves the routing host from the verified request host. As a workaround, place an upstream reverse proxy that strips or overwrites `X-Forwarded-Host` on untrusted requests.

EPSS

Процентиль: 11%
0.00208
Низкий

5.8 Medium

CVSS3

Дефекты

CWE-345
CWE-441