Claude Code 2.1.313 z Cursor Marketplace obsahoval SSH backdoor

Phorion našel škodlivý kód v balíčku oficiálního rozšíření. Samotné odinstalování nestačí a na macOS závisí vzdálený přístup na spuštěném SSH.

30. října 2026 Redakce aidevelopers.cz

Bezpečnostní firma Phorion oznámila, že balíček oficiálního rozšíření Claude Code for VS Code ve verzi 2.1.313 na Cursor Marketplace obsahoval vložený škodlivý kód. Cursor dotčené vydání odstranil a podle Phorionu byly staženy také verze 2.1.313 z příslušných registrů NPM a VS Code. Zdroj neuvádí, jak se kód do balíčku dostal ani zda se útočník přes backdoor prokazatelně přihlásil na konkrétní zařízení.

Implant byl připojen před běžný minifikovaný kód v extension.js a spustil se už při načtení modulu, bez interakce uživatele. Rozšíření běží s oprávněními IDE a přihlášeného uživatele, takže mohlo číst jeho soubory a měnit konfiguraci v domovském adresáři.

Dva klíče a reverzní SSH tunel

První fáze vytvořila ~/.ssh, nastavila jeho oprávnění a do authorized_keys přidala veřejný klíč s komentářem svc-telemetry. Držitel odpovídajícího soukromého klíče se tím mohl přihlásit jako napadený uživatel, ale pouze pokud na zařízení skutečně běžel SSH server.

Druhý vložený klíč sloužil opačným směrem: napadený počítač se jím připojoval k serveru 134.209.82[.]225 a otevíral reverzní přesměrování -R *:0:localhost:22. Útočník se pak mohl připojit na dynamicky přidělený port svého serveru a provoz tunelem dovést k lokálnímu SSH na napadeném stroji. Proces se po přerušení zkoušel znovu připojit každých 60 sekund.

Na macOS vytvořil implant soubory ~/.config/.smt a .smtk a LaunchAgent ~/Library/LaunchAgents/com.apple.sysmond.plist. Linux používal uživatelský crontab s @reboot; Windows se pokoušel vytvořit úlohu SysMon a měl záložní skript ve složce Po spuštění. Některé větve ale vyžadovaly oprávnění, která běžný uživatel nemá, a podle Phorionu obsahoval kód pro Windows chybu s voláním /bin/sh.

Proč na macOS nemusel fungovat vzdálený vstup

Malware zjišťoval stav Remote Login příkazem systemsetup -getremotelogin bez zvýšených oprávnění. Standardnímu uživateli macOS nástroj místo stavu Off vypíše chybu, ale vrátí kód 0. Implant proto neprovedl větev se sudo -n systemsetup -setremotelogin on. Pokud SSH už neběželo, tunel sice mohl vzniknout, ale na lokálním portu 22 nebyla služba, která by přijala spojení. Pokud bylo Remote Login zapnuté už předtím nebo později, vložený klíč zůstával použitelný.

Implant také jednorázově odesílal hostname, uživatelské jméno, platformu, globální Git e-mail a názvy až 40 proměnných prostředí odpovídajících slovům jako TOKEN, SECRET nebo AWS. Podle analýzy neposílal jejich hodnoty. Beacon mířil přes nešifrované HTTP na port 8099 stejné IP; skutečný interaktivní přístup zajišťoval SSH tunel.

Co zkontrolovat

Odinstalování rozšíření neodstraní klíč, běžící tunel ani perzistenci. Phorion doporučuje ukončit procesy ssh, autossh a retry skript komunikující s uvedenou IP, odstranit platformní mechanismus spuštění, soubory .smt a .smtk, dočasné .stk_* a klíč svc-telemetry z authorized_keys. V SSH logu je potřeba hledat přihlášení z 127.0.0.1 nebo ::1, protože spojení přicházelo lokálně z tunelu. Pokud SSH běželo nebo existuje doklad přihlášení, je namístě rotovat přístupové údaje a tokeny dostupné danému uživateli.