114 av 119 MCP-servere med OAuth godtok vilkårlige redirect-adresser fra anonyme klienter
torsdag 5. november · KI-generert · Kilde: Stream Vessel
Flytt redirect-sjekken i din egen MCP-server fra registrering til innlogging, fordi 114 av 119 testede servere lot en falsk klient stjele tilgangen med ett klikk.
114 av 119 MCP-servere med OAuth hadde registreringsendepunkter som godtok vilkårlige redirect-adresser fra anonyme klienter, viser en måling Stream Vessel trekker frem i et nytt blogginnlegg. Tallet kommer fra en studie av Zhou et al., lagt ut på arXiv 21. mai 2026. Der fant forskerne minst én autentiseringsfeil på samtlige 119 servere, 325 feil totalt, og fikk tildelt 9 CVE-er.
Angrepet krever ingen konto. Angriperen registrerer en klient som kaller seg «Claude», med redirect-adresse på eget domene, og sender deg en vanlig /oauth/authorize-lenke. Du ser serverens ekte samtykkeskjerm på det ekte domenet og klikker Approve. Engangskoden havner hos angriperen, som bytter den mot et token. PKCE hjelper ikke, fordi det var angriperen som startet flyten.
I januar 2026 rapporterte Obsidian Security nøyaktig denne kjeden mot Squares MCP-server, der ett klikk eksponerte en forhandlers transaksjoner og bankdetaljer. Squares fiks gjaldt bare nyregistrerte klienter.
«Alle brukere som tidligere hadde autorisert Square MCP-serveren, var sårbare.» — Obsidian Security, gjengitt av Stream Vessel
Det motsatte grepet, en fast allowlist som operatøren setter likt for alle, stenger ute agentene du bygger selv. En Claude Code-sak fra juni 2026 om at faste localhost-callbacks ikke slipper gjennom eksakte allowlister ble lukket som «not planned» i juli. Stream Vessels løsning er en liste per bruker med opptil 10 eksakte https-adresser, sjekket på authorize-siden når brukeren er kjent. Å legge til en adresse krever at du skriver inn verten, og hvert tillegg varsles på e-post. Feil sendes heller aldri til en adresse som ikke er klarert, ellers blir serveren en åpen redirector på eget domene.
Slik tetter du det
- Avgjør hvor koder kan sendes på authorize-steget, når brukeren er innlogget, ikke ved registrering.
- Sjekk alle svar mot samme regel før du redirecter, også feilmeldinger og Deny-knappen. n8n fikk CVE-2026-42230 i april 2026 fordi avslått samtykke sendte brukeren rett til angriperens adresse.
- Vis redirect-verten for akkurat denne innloggingen på samtykkeskjermen, og la fjerning av en adresse trekke tilbake alle grants og koder som er underveis.