
⚠️ Peringatan: Kalau lo pernah
npm install [email protected]atau[email protected]— anggap sistem lo udah kena.
Buat lo yang kerja di dunia JavaScript dan Node.js, ini berita yang wajib lo tau.
Tanggal 30 Maret 2026 kemarin, library axios — yang didownload lebih dari 100 juta kali seminggu — ketahuan ada versi palsu yang berbahaya beredar di npm. Dua versi yang kena: [email protected] dan [email protected].
Sebentar — Apa Itu RAT?
RAT singkatan dari Remote Access Trojan — jenis malware yang kasih si hacker akses penuh ke komputer lo dari jarak jauh, tanpa lo sadari sama sekali.
Bayangin kayak gini: lo lagi kerja di laptop, tapi ada orang asing yang bisa liat layar lo, baca file lo, nyolong password dan API key lo, bahkan jalanin perintah di terminal lo — semuanya diam-diam di background, lo ga bakal ngerasa apa-apa.
Yang bikin RAT beda dari virus biasa:
- Ga ngerusak file lo secara langsung — tujuannya bukan ngehancurin, tapi ngintip dan ngambil data
- Susah kedeteksi — karena nyamar jadi proses yang keliatan normal
- Bisa jalan terus di background — bahkan setelah lo restart mesin

Oke, Balik ke Axios — Gimana Cara Kerjanya?
Ini bukan sekadar malware asal-asalan. Serangannya direncanain matang banget. Mari kita bedah satu-satu.
1. Akun Maintainer Axios Dibajak
Si hacker berhasil jebol akun npm-nya jasonsaayman — orang yang megang kendali utama project axios. Email akunnya langsung diganti ke email ProtonMail buatan si hacker ([email protected]).
Karena namanya masih pakai akun asli, tampilannya di npm keliatan sah-sah aja. Bedanya sama versi legit cuma keliatan di metadata:
// [email protected] — LEGIT ✅
"_npmUser": {
"name": "GitHub Actions",
"email": "[email protected]",
"trustedPublisher": { "id": "github" }
}
// [email protected] — PALSU ❌
"_npmUser": {
"name": "jasonsaayman",
"email": "[email protected]"
// no trustedPublisher, no gitHead
}Ga ada commit atau tag di GitHub yang nyambung ke versi 1.14.1. Versi ini cuma ada di npm, bukan di repo aslinya.
2. Nyempil Dependency Tersembunyi
Di dalam versi axios palsu, ada satu perubahan kecil tapi mematikan: ditambahin dependency baru bernama [email protected].
Package ini ga pernah ada di versi axios sebelumnya, dan ga dipakai sama sekali di source code-nya. Tujuannya cuma satu: jalanin script postinstall yang isinya malware begitu lo npm install.
Bedanya sama versi bersih cuma satu baris di package.json:
"dependencies": {
"follow-redirects": "^2.1.0",
"form-data": "^4.0.1",
"proxy-from-env": "^2.1.0",
+ "plain-crypto-js": "^4.2.1" ← INI YANG JAHAT
}3. RAT Jalan, Terus Bersihin Jejaknya Sendiri
Begitu diinstall, script setup.js di dalam plain-crypto-js langsung:
Setelah selesai? Semua jejak dibersihin. npm audit ga bakal nunjukin apa-apa.

Timeline Serangan
Ini yang paling serem: serangannya udah dipersiapkan 18 jam sebelumnya. Bukan serangan dadakan.

Yang Bikin Serem
- Dependency jahatnya ditanam 18 jam sebelumnya — biar ga keliatan mencurigakan sebagai package baru
- Dua versi dirilis cuma selang 39 menit — menarget pengguna 1.x dan 0.x sekaligus
- Dalam 2 detik setelah
npm install, malware udah konek ke server si hacker npm auditga nunjukin apa-apa setelah infeksi — folder keliatan bersihnpm listnunjukin versi4.2.0(bersih) padahal yang jalan adalah4.2.1— ini jebakan buat incident respondersetup.jshapus diri sendiri dan replacepackage.jsondengan yang bersih setelah selesai
Cara Ngecek Apakah Lo Kena
STEP 1 — Scan seluruh sistem, cari semua instalasi axios:
find / -path "*/node_modules/axios/package.json" 2>/dev/null | while read f; do
version=$(grep '"version"' "$f" | head -1)
echo "$f -> $version"
doneIni berguna kalau lo punya banyak project di satu mesin — langsung keliatan semua path yang pakai axios dan versinya. Kalau ada yang nunjukin 1.14.1 atau 0.30.4, lanjut cek lebih dalam.
STEP 2 — Cek versi axios yang terinstall:
npm list axios | grep -E "1\\.14\\.1|0\\.30\\.4"STEP 3 — Cek keberadaan package jahat:
ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"Kalau folder
plain-crypto-jsada dinode_moduleslo — lo kena. Meskipun isinya keliatan bersih, itu karena malware-nya udah hapus jejaknya. Keberadaan folder itu aja udah cukup bukti.
Step 4 — Cek artifact RAT di mesin:
# macOS
ls /Library/Caches/com.apple.act.mond
# Linux
ls /tmp/ld.py
# Windows (cmd.exe)
dir "%PROGRAMDATA%\\wt.exe"
Kalau file-nya tidak ditemukan = aman.
Kalau file-nya ada, langsung:
- Jangan panik dulu, tapi jangan juga lanjut kerja di mesin itu
- Cabut koneksi internet mesin tersebut
- Anggap semua credential yang pernah ada di mesin itu sudah bocor — rotate semuanya dari mesin lain
- Rebuild mesin dari awal (reinstall OS atau restore dari snapshot bersih)
Langkah Pemulihan
1. Downgrade ke versi aman:
npm install axios@1.14.0 # pengguna 1.x
npm install axios@0.30.3 # pengguna 0.x2. Hapus package jahat dan reinstall:
rm -rf node_modules/plain-crypto-js
npm install --ignore-scripts3. Kalau mesin lo beneran kena RAT:
Jangan coba beresin sendiri — rebuild dari awal pakai snapshot yang bersih. Langsung rotate semua credentials:
- npm access token
- SSH private key
- AWS / GCP / Azure access key
- Semua isi
.envyang ada di mesin itu - CI/CD secrets
4. Untuk CI/CD pipeline — tambahin flag ini sebagai standar:
npm ci --ignore-scriptsFlag --ignore-scripts nyegah postinstall script jalan otomatis. Harusnya ini jadi standar di semua pipeline production.
Pelajaran dari Kasus Ini
Supply chain attack makin canggih. Dulu kita pikir asal install dari npm yang terkenal pasti aman — ternyata enggak juga. Akun maintainer bisa dijebol, dan satu dependency tambahan yang ga ketara bisa jadi pintu masuk hacker ke seluruh sistem lo.
Pencegahan:
- Pin versi dependency secara eksplisit, tanpa tanda
^atau~di production - Pakai
npm ci --ignore-scriptsdi semua pipeline - Pantau outbound network di CI/CD — domain asing yang tiba-tiba muncul itu red flag
- Cek OIDC Trusted Publisher di metadata npm sebelum update library besar
Kalau sudah kena:
- Rotate semua credentials (npm token, SSH key, cloud access key, semua .env)
- Rebuild dari clean snapshot — jangan coba beresin di tempat
- Audit semua pipeline log yang pernah jalanin npm install di periode yang kena
Versi aman:
[email protected]dan[email protected].
Versi bermasalah: ([email protected]&[email protected]) sudah dihapus dari registry npm.
Sumber: StepSecurity Blog


