npm-pakken jscrambler ble kompromittert, og versjon 8.14.0, publisert 11. juli 2026, kjører en infostealer ved installasjon. Det melder Socket, StepSecurity og SafeDep, gjengitt av kilden. En preinstall-hook slipper ut og starter en native binær, med én bygg hver for Windows, macOS og Linux. Socket flagget releasen seks minutter etter publisering, men på en maskin som rakk å installere i det vinduet, har koden allerede kjørt med de rettighetene installasjonsprosessen hadde.
Mållista er der saken treffer deg som bygger med KI. Ved siden av de vanlige målene (skynøkler fra AWS, Azure og Google Cloud, inkludert metadata-endepunktene CI-kjørere bruker, kryptolommebøker, Bitwarden-hvelvet, samt nettleserpassord og Discord-, Slack- og Telegram-sesjoner) går den målrettet etter konfigfilene til KI-kodeverktøy: Claude Desktop, Cursor, Windsurf, VS Code og Zed. Det er nettopp der API-nøkler og MCP-serverlegitimasjon pleier å ligge.
De to nye filene finnes ingen steder i jscramblers offentlige kildekode. StepSecurity og SafeDep fant ingen commit, tag eller pull request for 8.14.0 i GitHub-repoet, som fortsatt står på 8.13.0. Versjonen ble dyttet rett til npm fra en legitim vedlikeholderkonto, utenom prosjektets normale release-flyt. Det peker mot en kapret konto eller byggpipeline, men hvilken er ikke fastslått. På Linux kan nyttelasten dessuten laste et eBPF-program rett inn i kjernen fra minnet, altså et fotfeste i kjernen og ikke bare filtilgang i userspace.
Timingen er skarp: npm 12 kom 8. juli, tre dager før releasen, med install-skript avslått som standard. Der kjører ikke en preinstall-hook uten at noen godkjenner den, mens eldre klienter kjører den automatisk. Verre er det at 8.14.0 aldri ble trukket. Den ligger fortsatt på npm, så enhver lockfile som er pinnet til den, installerer stealeren på nytt.
Hva bør du gjøre?
- Kom deg av 8.14.0. Gå til 8.15.0, eller pinn til 8.13.0 for en release fra før hendelsen, og fjern jscrambler@8.14.0 fra lockfiler og cacher.
- Finn ut om du faktisk installerte den. Søk i lockfiler og pakkeloggene etter jscrambler@8.14.0, og i CI-loggene etter kjøringer av dist/setup.js fra 11. juli og framover. Loaderen slipper nyttelasten under et tilfeldig navn i temp-katalogen, så det finnes ikke noe fast filnavn å grepe etter. Sammenhold heller installasjonstidspunkt med Node-barneprosesser. Sjekk Task Scheduler på Windows og ~/Library/LaunchAgents på macOS.
- Behandle alle hemmeligheter den kunne nå som stjålet, ikke bare eksponert, dersom den kjørte. Roter skynøkler, npm- og GitHub-tokens, og API-nøkler til KI-verktøy og MCP-servere. Trekk tilbake sesjoner for Discord, Slack, nettleser og Bitwarden.
Pakken har rundt 15 800 nedlastinger i uka, langt mindre enn de store npm-kompromitteringene det siste året. Men jscrambler er et byggetidsverktøy som lever i CI og som dev-avhengighet, og det er nettopp der deploy-tokens og kildekode ligger. For en stealer rettet mot byggemaskiner var rekkevidde aldri poenget. Tilgangen er det.