Coder vulnerable to SSH config injection via unsanitized server-supplied values in `coder config-ssh`
🔗 CVE IDs covered (1)
📋 Description
Summary
coder config-ssh wrote server-supplied SSH settings (HostnameSuffix, SSHConfigOptions) into the user's ~/.ssh/config without sanitizing embedded newlines or restricting directives so a malicious or compromised Coder server could inject arbitrary SSH configuration.
Note: Practical exploitation requires control of the server-supplied values through a malicious or compromised deployment, a man-in-the-middle position or admin access to the
HostnameSuffixandSSHConfigOptionssettings.
Impact
A server administrator or an attacker who controlled the server, could inject a directive such as ProxyCommand and achieve arbitrary code execution on any developer workstation that ran coder config-ssh. Injected commands ran with the local user's privileges and applied to all SSH connections, not just Coder workspaces.
Patches
The fix validates HostnameSuffix and SSHConfigOptions against a strict character set that rejects newlines and other control characters.
The fix was backported to all supported release lines:
| Release line | Patched version | |---|---| | 2.34 | v2.34.2 | | 2.33 | v2.33.8 | | 2.32 | v2.32.7 | | 2.29 (ESR) | v2.29.17 |
Workarounds
Inspect coder config-ssh --dry-run output before applying changes.
Resources
- Fix: #26154
Credits
Coder would like to thank Anthropic's Security Team (ANT-2026-22437) for independently disclosing this issue!
🎯 Affected products4
- go/github.com/coder/coder/v2:>= 2.34.0, < 2.34.2
- go/github.com/coder/coder/v2:>= 2.33.0, < 2.33.8
- go/github.com/coder/coder/v2:>= 2.30.0, < 2.32.7
- go/github.com/coder/coder/v2:< 2.29.17