DEV Community

Cover image for Serangan Rantai Pasokan axios@1.14.1: Cara Mengatasi Sekarang
Walse
Walse

Posted on • Originally published at apidog.com

Serangan Rantai Pasokan axios@1.14.1: Cara Mengatasi Sekarang

Intinya

Pada tanggal 30–31 Maret 2026, axios versi 1.14.1 dan 0.30.4 disusupi di npm dengan dependensi berbahaya yang menjatuhkan trojan akses jarak jauh (RAT) pada mesin yang terinfeksi. Kedua versi tersebut telah dihapus publikasinya. Versi yang aman adalah 1.14.0. Jika Anda menginstal axios@1.14.1 atau 0.30.4, anggap mesin tersebut telah disusupi dan segera ubah semua kredensial.

Coba Apidog hari ini

Apa itu axios dan Mengapa Ini Penting

axios memiliki 100 juta unduhan mingguan di npm. Ini adalah klien HTTP di banyak framework frontend, layanan Node.js backend, dan aplikasi perusahaan. Ketika paket yang begitu fundamental ini disusupi, dampaknya sangat besar — pengembang yang menjalankan npm install dalam jendela waktu 30–31 Maret tanpa sadar menarik malware ke mesin mereka.

Ini adalah risiko rantai pasokan nyata dan telah dikonfirmasi: trojan akses jarak jauh multi-tahap yang bisa mengeksekusi perintah arbitrer, mengekstrak data sistem, dan bertahan di mesin terinfeksi.

Jika tim Anda menggunakan axios, dan Anda memakai Apidog untuk mendesain dan menguji integrasi klien HTTP, baca ini sebelum deployment berikutnya.

Kronologi Serangan

30 Maret 2026 — 23:59:12 UTC: Paket berbahaya plain-crypto-js@4.2.1 diterbitkan ke npm oleh akun nrwise@proton.me. Versi 4.2.0 sebelumnya adalah typosquat dari pustaka crypto-js yang sah.

31 Maret 2026 — 00:05:41 UTC: Deteksi otomatis Socket menandai plain-crypto-js@4.2.1 sebagai berbahaya — enam menit setelah publikasi.

31 Maret 2026 — tak lama setelah tengah malam: axios@1.14.1 diterbitkan ke npm, menarik plain-crypto-js@4.2.1 sebagai dependensi. Rilis ini tidak muncul di tag resmi GitHub; tag sah terbaru tetap v1.14.0.

31 Maret 2026 — pagi: Isu GitHub #10604 dibuka, melaporkan axios@1.14.1 dan axios@0.30.4 telah disusupi. Pemelihara Axios tidak dapat langsung mencabut akses penyerang karena akun yang disusupi punya izin npm lebih tinggi.

31 Maret 2026: Baik axios@1.14.1 maupun axios@0.30.4 dihapus dari npm. Pemelihara mencabut token, memperketat kontrol publikasi, dan menyelidiki eksploitasi token npm berumur panjang.

Bagaimana Serangan Bekerja

Serangan ini memanfaatkan token npm berumur panjang pada alur publikasi axios. Penyerang, kemungkinan setelah mendapatkan kredensial pemelihara, menggunakan token tersebut untuk menerbitkan versi baru di luar proses rilis normal.

Versi baru menambahkan dependensi plain-crypto-js@4.2.1 (dengan versi 4.2.0 yang bersih untuk menurunkan kecurigaan).

Payload dalam plain-crypto-js@4.2.1:

  1. Tahap 1 — Eksekusi: Skrip instalasi npm menjalankan kode untuk menjatuhkan payload sekunder.
  2. Tahap 2 — Deployment RAT: Payload menginstal trojan akses jarak jauh yang membuka backdoor persisten.
  3. Tahap 3 — Eksfiltrasi: RAT dapat mengeksekusi perintah shell, membaca env/secret, dan mengirim data ke server C2.

RAT tetap ada setelah reboot, sehingga mesin tetap berisiko walau paket npm sudah dihapus — RAT harus dicari dan dihapus manual.

Apakah Saya Terkena Dampak?

Anda berpotensi terdampak jika:

  • Menjalankan npm install axios atau npm install (axios di package.json) antara 30 Maret, 23:59 UTC dan 31 Maret 2026 tengah hari UTC.
  • node_modules/axios/package.json menunjukkan versi 1.14.1 atau 0.30.4.
  • package-lock.json atau yarn.lock mengunci axios ke 1.14.1 atau 0.30.4.

Cek dengan cepat:

# Periksa versi yang terinstal
npm list axios

# Periksa file kunci
grep '"axios"' package-lock.json | head -5

# Periksa keberadaan plain-crypto-js
npm list plain-crypto-js
ls node_modules/plain-crypto-js 2>/dev/null && echo "INFECTED" || echo "Tidak ditemukan"
Enter fullscreen mode Exit fullscreen mode

Jika plain-crypto-js ada di node_modules, Anda menjalankan versi berbahaya.

Apa yang Harus Dilakukan Sekarang

1. Perbarui axios segera

npm install axios@1.14.0
# atau kunci ke versi aman terbaru
npm install axios@latest
Enter fullscreen mode Exit fullscreen mode

Verifikasi:

npm list axios
# Pastikan versi 1.14.0 atau lebih tinggi (setelah versi bersih dirilis)
Enter fullscreen mode Exit fullscreen mode

2. Jika Anda menginstal versi yang disusupi

Anggap mesin telah disusupi, lakukan langkah berikut:

  • Ubah semua rahasia (API key, kredensial DB, SSH key, token cloud, variabel .env).
  • Periksa variabel lingkungan — RAT menargetkan env proses dan sistem file.
  • Audit koneksi jaringan keluar pada periode terdampak — cek koneksi ke IP mencurigakan.
  • Pindai persistensi — cek cron, skrip startup, systemd service yang muncul di waktu kompromi.
  • Buat ulang citra mesin jika itu CI runner / server produksi. Untuk laptop developer, anggap semua kredensial telah bocor dan ganti sebelum digunakan lagi.

3. Audit alur CI/CD Anda

Jika pipeline build menjalankan npm install pada jendela waktu tersebut, CI Anda mungkin terinfeksi. Lakukan:

# Cek log build pada periode terdampak
# Cari axios@1.14.1 di output instalasi

# Pastikan node_modules CI saat ini bersih
npm list axios plain-crypto-js
Enter fullscreen mode Exit fullscreen mode

Ganti semua rahasia yang diakses pipeline CI: kunci deployment, token cloud, token registry.

4. Verifikasi file kunci Anda

File kunci (package-lock.json, yarn.lock) harus mengunci versi tepat. Jika ada 1.14.1, buat ulang:

rm package-lock.json
npm install
Enter fullscreen mode Exit fullscreen mode

Pastikan file kunci baru mengunci axios ke versi aman sebelum commit.

Menggunakan Apidog untuk Mengaudit Panggilan API axios Anda

Jika Anda memakai axios sebagai klien HTTP untuk memanggil API, Apidog dapat membantu memverifikasi integrasi Anda tetap benar setelah update dependensi.

Setelah update ke axios@1.14.0, impor endpoint API ke Apidog dan jalankan regresi untuk konfirmasi perilaku tidak berubah. Ini penting jika Anda khawatir versi berbahaya pernah mengubah muatan request/response. Gunakan penegasan respons Apidog untuk validasi field, header, dan status code:

// Penegasan pasca-respons Apidog
pm.test("Respons bersih — tidak ada bidang yang disuntikkan", () => {
    const body = pm.response.json();
    pm.expect(body).to.not.have.property('__injected');
    pm.expect(pm.response.headers.get('X-Injected-Header')).to.be.null;
});
Enter fullscreen mode Exit fullscreen mode

Jalankan seluruh pengujian pada axios versi baru di Apidog untuk dokumentasi baseline sebelum push ke produksi.

Coba Apidog gratis untuk setup regresi testing klien HTTP Anda.

Mengapa Serangan Rantai Pasokan di npm Sulit Dihentikan

Serangan axios bukan anomali, ini pola yang berulang:

  • event-stream (2018): Pemelihara menambahkan payload yang menargetkan dompet bitcoin. 8 juta unduhan/minggu.
  • ua-parser-js (2021): Disusupi untuk menjatuhkan crypto miner & pencuri password.
  • node-ipc (2022): Pemelihara menambahkan kode destruktif untuk IP Rusia/Belarusia.
  • xz utils (2024): Rekayasa sosial selama dua tahun untuk menyuntik backdoor ke pustaka Linux inti.
  • axios (2026): Kredensial pemelihara disusupi, RAT diterbitkan melalui dependensi berbahaya.

Inti masalah: kepercayaan pada akun publikasi, bukan pada kode itu sendiri. Model npm mengandalkan trust pada pemelihara; jika kredensial mereka bocor, penyerang mewarisi kepercayaan itu.

Mitigasi yang sangat membantu:

Tindakan Apa yang Dilakukan
File kunci (package-lock.json) Mengunci versi tepat, cegah upgrade diam-diam
npm audit di CI Tandai kerentanan sebelum deployment
Socket.dev / Snyk Analisis perilaku — tandai paket mencurigakan sebelum ada CVE
2FA di npm Sulitkan kompromi kredensial
npm publish dengan token berumur pendek Batasi jendela paparan jika token bocor
Review file kunci di PR Tangkap perubahan dependensi tidak terduga di code review

Tim axios kini beralih ke kontrol publikasi lebih ketat dan token pendek. Tapi perbaikan harus datang dari ekosistem, bukan hanya paket individu.

Indikator Kompromi (IOC)

Menurut analisis Socket:

  • Paket berbahaya: plain-crypto-js@4.2.1, axios@1.14.1, axios@0.30.4
  • Email penerbit: nrwise@proton.me
  • Perilaku: Koneksi jaringan saat instalasi npm, persistensi RAT, eksfiltrasi env
  • Versi axios aman: 1.14.0 ke bawah (kecuali 0.30.4), 1.13.x, 1.12.x

Jika Anda curiga terinfeksi, laporkan ke security@npmjs.com dan simpan log.

Kesimpulan

Kompromi axios 1.14.1 adalah pengingat bahwa keamanan dependensi adalah proses berkelanjutan. Kunci versi, jalankan alat analisis perilaku seperti Socket di CI, ubah kredensial saat ada anomali, dan pantau file kunci di code review.

Jika Anda perlu rebuild kepercayaan pada integrasi API setelah update axios, Apidog menyediakan skenario testing, penegasan, dan mocking untuk memverifikasi klien HTTP Anda sebelum release.

FAQ

Versi axios mana yang disusupi?

axios@1.14.1 dan axios@0.30.4. Keduanya sudah dihapus dari npm. Versi aman: 1.14.0 (atau 1.13.x, 1.12.x).

Apa yang dilakukan muatan axios berbahaya?

Menarik plain-crypto-js@4.2.1 yang men-deploy RAT multi-tahap. RAT dapat mengeksekusi perintah jarak jauh, eksfiltrasi env dan secret, serta bertahan setelah reboot.

Bagaimana tahu kalau saya menginstal versi berbahaya?

Jalankan npm list axios — jika 1.14.1 atau 0.30.4, Anda terdampak. Cek juga npm list plain-crypto-js — jika ada, kode berbahaya sudah berjalan.

Apakah cukup hanya update axios?

Tidak cukup. Update hanya menghapus dependensi ke depan, tapi RAT bisa sudah terinstal dan bertahan. Jika pernah install versi berbahaya, ganti semua rahasia dan audit mesin untuk persistensi.

Bagaimana penyerang bisa publish ke npm tanpa jadi pemelihara?

Penyerang kemungkinan mendapatkan kredensial pemelihara dan mengeksploitasi token npm berumur panjang. Tim axios kini perketat kontrol publikasi.

Apa beda ini dengan kerentanan biasa?

Kerentanan = bug pada kode sah. Supply chain attack = kode berbahaya masuk lewat publikasi tepercaya. Kode jahat tidak pernah ada di repo GitHub axios — disuntikkan langsung ke npm.

Bagaimana melindungi proyek dari supply chain attack kedepan?

Gunakan file kunci, jalankan npm audit di CI, gunakan Socket.dev untuk analisis perilaku, aktifkan 2FA npm, token publish pendek, dan audit perbedaan file kunci di code review.

Top comments (0)