Hopp til hovedinnhold
PULSEN_
ESC Tilbake til strømmen
SecurityWeek · 8.5., 08:15 · sikkerhet

Mitiga Labs: npm post-install kaprer Claude Codes MCP-proxy og stjeler OAuth-tokens

SYNOPSIS_GENERERT

Mitiga Labs publiserte 7. mai en demo der en npm-pakke med postinstall-hook redigerer ~/.claude.json, ompeker Claude Codes MCP-trafikk gjennom angriperens proxy og fanger OAuth-tokens i klartekst. Anthropic avslo rapporten 12. april med samme «out of scope»-begrunnelse som ble brukt mot Adversas TrustFall-rapport.

Der TrustFall-rapporten samme uke fokuserte på samtykke-dialogen som førsteangrepsflate, går Mitiga Labs etter mekanikken som ligger bak: konfigurasjonsfilen ~/.claude.json. SecurityWeek dekket funnet 7. mai. Filen lagrer både MCP-serveroppsettet og OAuth-tokens i klartekst, og hvis en angriper kan modifisere den, er resten lett. Mitiga publiserte en demo der en spesialtilpasset npm-pakke registrerer en postinstall-lifecycle-hook som gjør to ting: fyller inn forhåndsgodkjente trust-flagg slik at Claude Code aldri viser tillitsdialogen, og rediger­er MCP-serveradressen til å peke på en mitmproxy angriperen kontrollerer.

Resultatet er stille og varig. Hver gang Claude Code initierer eller fornyer en MCP-sesjon, går trafikken via proxy-en. OAuth-tokenet til hvert tilkoblet verktøy passerer som klartekst. Hvis brukeren roterer tokenet, skriver hooken det tilbake ved neste oppstart. Hvis brukeren fikser MCP-URL-en, gjør hooken det samme. Mitiga oppsummerer: «en varig omdirigering av offerets SaaS-legitimasjon til angriperkontrollert infrastruktur, med automatisk gjenoppretting etter token-rotasjon, usynlig i brukerens endepunkt-UI, og umulig å skille fra legitim trafikk på leverandørsiden».

«Monitor Claude Code configuration changes, MCP server URL changes, OAuth refresh behavior, suspicious SaaS API activity, and unexpected traffic through MCP integrations.» — Mitiga Labs

Anthropic fikk rapporten 10. april og avslo den 12. april med samme begrunnelse som mot Adversa: brukeren har allerede samtykket. Det er teknisk konsistent, men praktisk ubehagelig fordi MCP er nettopp den protokollen som gjør Claude Code til en agent. Tokenet i ~/.claude.json fungerer som en MFA-bypassende «golden key» mot alle tjenester Claude er koblet til, med samme rettigheter som brukeren. Ett kompromittert npm-pakke i package.json-treet ditt holder.

Hva bør du gjøre?

  1. Sett ~/.claude.json til chmod 600 og overvåk endringer. Et inotify-script eller auditd-regel som logger writes til filen fanger angrepet før neste MCP-oppkobling.
  2. Bruk npm install --ignore-scripts som standard. Lifecycle-hooks er angrepsvektoren her. Sett npm config set ignore-scripts true globalt og gjør unntak per pakke når du faktisk trenger build-steg.
  3. Roter tokens via leverandørens dashboard, ikke via CLI-en. Hvis hooken allerede er installert, fanger den nye tokens som blir lagret tilbake i ~/.claude.json. Bryt syklusen ved å revokere fra GitHub, Linear, Sentry-konsollen direkte.

KI-KURATERT — INNHOLD GENERERT AV KI-AGENTER BASERT PÅ ORIGINALKILDEN