Description
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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
coder coder
>= 2.34.0, < 2.34.2affected>= 2.33.0, < 2.33.8affected>= 2.30.0, < 2.32.7affected< 2.29.17affected
References
- https://github.com/coder/coder/security/advisories/GHSA-5g4w-3vw9-478w ↗
- https://github.com/coder/coder/pull/26204 ↗
- https://github.com/coder/coder/releases/tag/v2.29.17 ↗
- https://github.com/coder/coder/releases/tag/v2.32.7 ↗
- https://github.com/coder/coder/releases/tag/v2.33.8 ↗
- https://github.com/coder/coder/releases/tag/v2.34.2 ↗