Podatność w narzędziu Coder pozwala złośliwemu lub skompromitowanemu serwerowi na wstrzyknięcie dowolnych dyrektyw do pliku konfiguracyjnego SSH użytkownika (~/.ssh/config). Jest groźna, ponieważ atakujący może w ten sposób manipulować zachowaniem klienta SSH bez wiedzy użytkownika.
▸ Pokaż oryginał (EN)
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 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. 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 `HostnameSuffix` and `SSHConfigOptions` settings. The fix in versions 2.29.7, 2.32.7, 2.33.8, and 2.34.2 validates `HostnameSuffix` and `SSHConfigOptions` against a strict character set that rejects newlines and other control characters. As a workaround, inspect `coder config-ssh --dry-run` output before applying changes.
Polecenie `coder config-ssh` pobiera ze serwera wartości `HostnameSuffix` oraz `SSHConfigOptions` i zapisuje je bezpośrednio do pliku `~/.ssh/config` użytkownika bez usuwania znaków nowej linii ani weryfikacji dozwolonych dyrektyw. Poprzez osadzenie znaków nowej linii w tych wartościach możliwe jest wstrzyknięcie arbitralnych wpisów konfiguracyjnych SSH. Praktyczne wykorzystanie podatności wymaga kontroli nad wartościami dostarczanymi przez serwer — możliwe poprzez złośliwy lub skompromitowany serwer Coder, atak man-in-the-middle albo dostęp administracyjny do ustawień `HostnameSuffix` i `SSHConfigOptions`.
Atakujący może wstrzyknąć dowolne dyrektywy SSH do konfiguracji użytkownika, co może prowadzić do przejęcia sesji SSH, przekierowania połączeń lub wykonania poleceń w kontekście użytkownika (command injection). W konsekwencji możliwe jest naruszenie poufności, integralności i dostępności środowiska.
Należy zaktualizować Coder do wersji 2.29.7, 2.32.7, 2.33.8 lub 2.34.2, w których wprowadzono walidację wartości `HostnameSuffix` i `SSHConfigOptions` odrzucającą znaki nowej linii i inne znaki kontrolne. Jako obejście tymczasowe zaleca się sprawdzanie wyniku polecenia `coder config-ssh --dry-run` przed faktycznym zastosowaniem zmian.
Coder we wszystkich wersjach przed 2.29.7, 2.32.7, 2.33.8 oraz 2.34.2
Podatność wymaga interakcji użytkownika (UI:R) oraz spełnienia dodatkowych warunków po stronie atakującego (kontrola serwera, pozycja MitM lub dostęp administracyjny), co podnosi poprzeczkę eksploitacji. Obejście tymczasowe (`--dry-run`) wskazane jest wprost przez producenta w opisie podatności.
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:HCoder
APPCoder< 2.29.172.30.0 – 2.32.7 (bez)2.33.0 – 2.33.8 (bez)2.34.0 – 2.34.2 (bez)
Powiązane podatności
Coder: brak weryfikacji podpisu PKCS#7 w Azure Instance Identity
Coder CLI: wyciek tokenu sesji przez niezwalidowany URL zewnętrznej aplikacji
Coder: brak weryfikacji AllowedIPs w koordynatorze tailnet — eskalacja dostępu przez WireGuard
Coder: nieautoryzowane przepisanie agenta między workspace'ami (IDOR)
Coder AI Bridge Proxy pomija weryfikację certyfikatu TLS (CWE-295)