Sikkerhetsforskeren TheRealSpencer publiserte 13. mai detaljer om en cross-origin WebSocket-hijacking-feil i kanban-npm-pakken som Cline kommandolinjeagenten bruker. Når Cline starter, åpner den en lokal WebSocket-server på port 3484 uten origin-validering og uten autentisering. Oasis Security, som verifiserte funnet, gir det CVSS-skår 9,7.
Mekanikken er enkel og dyster: nettlesere blokkerer ikke cross-origin WebSocket-tilkoblinger til localhost. Det betyr at en hvilken som helst JavaScript-fil på en hvilken som helst side du besøker mens Cline kjører, kan koble seg rett på agenten din. Med en gang forbindelsen er oppe, kan angriperen lese ut filstier, git-grener, oppgavetitler og pågående LLM-samtaler.
«Nettlesere begrenser ikke cross-origin WebSocket-tilkoblinger til localhost, så ondsinnet JavaScript kan snakke fritt med endepunktene.» — Oasis Security
Det stopper ikke der. Cline har et eget terminal-IO-endepunkt over samme WebSocket. Angriperen kan dytte prompter direkte inn i agentens aktive arbeidsområde, og siden agenten behandler dem som normalt brukerinput, blir vanlig tekst-injeksjon til full remote code execution så snart en linjeskift følger med. Et eget kontroll-endepunkt kan dessuten brukes til å drepe aktive økter og lage en denial-of-service.
«Trusselsaktørene kan injisere vilkårlige prompter direkte i agentens aktive arbeidsområde.» — TheRealSpencer, GitHub-publisering
Sårbarheten rammer macOS, Linux og Windows, alt der Node.js og Cline kjører. Det finnes ingen patchet versjon ennå. Fiksen krever strukturelle endringer i hvordan Cline starter sin lokale server: origin-header må valideres ved upgrade, og en tilfeldig sesjons-token bør genereres ved oppstart slik at eksterne origins ikke kan gjette tilkoblingsparametere.
Hva bør du gjøre?
- Avslutt Cline-prosessen før du surfer. Sjekk med
lsof -i :3484ellerss -tlnp | grep 3484om porten er åpen, og kill prosessen om du ikke bruker agenten akkurat nå. - Blokker port 3484 lokalt mens du venter på fix. På Linux:
sudo iptables -A INPUT -p tcp --dport 3484 -j REJECT. På macOS: bruk Little Snitch eller pf-regler. Det stopper ekstern tilkobling, men ikke samme-maskin-angrep via nettleser. - Følg Cline-repoet for offisiell patch og oppgrader så snart en versjon med origin-validering slippes. Inntil da: ikke kjør Cline parallelt med generell websurfing på samme bruker.
Bakgrunn
Cline er en av de mest brukte åpne KI-koderassistentene, distribuert som VS Code-utvidelse og CLI. Arkitekturen med lokal WebSocket-server er ikke uvanlig. Cursor, Aider og flere andre verktøy gjør lignende ting, men de fleste bruker enten Unix-socket eller validerer origin. Cline-feilen viser hvorfor det er viktig: en agent som leser kildekoden din og kan kjøre kommandoer er et ekstremt attraktivt mål, og den lokale serveren er en åpen dør så snart cross-origin-policyen ikke gjelder.