Paket-paket yang terdampak memiliki total lebih dari 1,1 juta unduhan per minggu . Microsoft kemudian menyatakan dengan tingkat keyakinan tinggi pada 19 Juni 2026 bahwa operasi tersebut dilakukan oleh Sapphire Sleet .
Rangkaian serangannya berlangsung cepat dan sangat terotomatisasi. Berikut tahap-tahap utamanya.
Penyerang terlebih dahulu menargetkan seorang maintainer Mastra melalui rekayasa sosial, lalu berhasil mendapatkan kredensial akun npm-nya . Akun yang diidentifikasi sebagai ehindero memiliki hak untuk menerbitkan paket di seluruh cakupan @mastra .
Dengan akses tersebut, penyerang tidak perlu mencari celah pada setiap paket. Satu akun dengan hak publikasi yang luas sudah cukup untuk memengaruhi seluruh namespace.
Akun yang telah diambil alih digunakan untuk menerbitkan ulang seluruh paket dalam namespace @mastra/* selama jendela waktu sekitar 88 menit. Sejumlah laporan menyebutkan bahwa lonjakan publikasi utamanya berlangsung hanya dalam 19 menit .
Kecepatan ini mengindikasikan penggunaan skrip otomatis, bukan pengunggahan paket secara manual satu per satu.
Setiap versi paket yang telah disusupi diberi dependensi berbahaya bernama easy-day-js. Nama tersebut merupakan typosquat—nama yang sengaja dibuat mirip dengan pustaka tanggal populer dayjs—untuk mengelabui pengembang .
Para peneliti keamanan menyebut kampanye ini sebagai “easy-day-js” .
Kode berbahaya dirancang untuk berjalan melalui skrip npm postinstall. Artinya, pengembang dapat memicu payload hanya dengan menjalankan npm install pada paket yang terdampak; aplikasi yang dibangun dari paket tersebut tidak perlu dijalankan terlebih dahulu .
Karakteristik ini membuat serangan rantai pasok sangat berbahaya: proses instalasi yang dianggap rutin dapat menjadi titik awal kompromi.
Setelah aktif, payload mencari kunci dompet kripto, kredensial cloud, serta rahasia CI/CD dari workstation pengembang dan sistem build . Malware tersebut juga menonaktifkan verifikasi TLS dan mengunduh pencuri data tahap kedua dari infrastruktur yang dikendalikan penyerang .
Jika kredensial yang dicuri memiliki hak istimewa, dampaknya dapat meluas dari satu komputer ke repositori, layanan cloud, atau pipeline penerbitan paket lainnya.
Dalam pembaruan pada 19 Juni 2026, Microsoft menilai dengan tingkat keyakinan tinggi bahwa serangan tersebut dilakukan oleh Sapphire Sleet, aktor negara Korea Utara yang terutama menargetkan sektor keuangan dan mata uang kripto .
Penilaian itu didasarkan pada infrastruktur serta taktik, teknik, dan prosedur—atau TTP—yang selaras dengan operasi Sapphire Sleet yang telah terdokumentasi sebelumnya . Amazon Threat Intelligence juga menghubungkan kelompok yang sama dengan kampanye sebelumnya terhadap paket npm seperti axios, debug, chalk, dan typo-crypto .
Meski serangan Mastra terjadi di npm, Microsoft menggunakan momentum ini untuk memperketat keamanan penerbitan paket, khususnya di NuGet.org, repositori paket untuk ekosistem .NET. Fokus utamanya adalah mengurangi masa berlaku kredensial yang dicuri dan menggantinya dengan autentikasi berbasis identitas.
Mulai 17 Agustus 2026, API key NuGet.org yang baru dibuat tidak lagi dapat memiliki masa berlaku 365 hari. Batas maksimalnya menjadi 30 hari .
Seluruh API key yang dibuat sebelum 17 Agustus 2026 akan dipaksa kedaluwarsa pada 1 November 2026 . Maintainer yang masih mengandalkan key lama perlu membuat key baru atau beralih ke Trusted Publishing sebelum tenggat tersebut.
Microsoft menjelaskan bahwa API key berumur panjang merupakan rangkaian karakter yang mudah hilang atau terekspos, sekaligus memberi penyerang waktu yang panjang untuk menerbitkan paket yang telah ditrojanisasi .
Microsoft mendorong maintainer untuk beralih ke Trusted Publishing, alur penerbitan yang diluncurkan pada September 2025 dan menggunakan autentikasi OpenID Connect (OIDC) berumur pendek sebagai pengganti API key jangka panjang .
Dalam skema ini, pipeline CI/CD—misalnya GitHub Actions—meminta token OIDC yang ditandatangani secara kriptografis. NuGet.org memeriksa token tersebut berdasarkan kebijakan publisher yang telah didaftarkan, lalu memberikan API key sementara dan sekali pakai untuk sesi penerbitan itu .
Manfaat utamanya meliputi :
Trusted Publishing juga tersedia untuk npm dan PyPI, sehingga pendekatan ini semakin menjadi pola umum dalam keamanan rantai pasok perangkat lunak .
Respons terhadap serangan rantai pasok tidak hanya datang dari Microsoft. npm dan GitHub juga memperketat mekanisme autentikasi serta publikasi paket:
npm login kini menghasilkan session token yang berlaku selama dua jam .Langkah-langkah ini menyasar kelemahan yang dimanfaatkan Sapphire Sleet: satu token maintainer berumur panjang dengan perlindungan yang tidak memadai dan hak publikasi ke seluruh cakupan paket.
Jika Anda memiliki API key NuGet yang dibuat sebelum 17 Agustus 2026, key tersebut akan kedaluwarsa pada 1 November 2026. Rotasikan key atau migrasikan workflow ke Trusted Publishing sebelum tanggal tersebut .
OIDC menghilangkan kebutuhan menyimpan secret jangka panjang di pipeline. Hubungan kepercayaan dibatasi pada repositori dan workflow yang telah didaftarkan, sehingga kebocoran satu kredensial tidak otomatis memberikan akses publikasi tanpa batas .
Tinjau pipeline yang masih menggunakan token lama. Gunakan session token, granular token dengan masa berlaku terbatas, atau Trusted Publishing sesuai kebutuhan workflow .
Untuk komponen penting, gunakan versi yang telah diverifikasi dan hindari pembaruan dependensi otomatis sampai versi baru selesai diperiksa. Praktik ini dapat mengurangi risiko memasukkan paket yang telah disusupi secara tidak sengaja .
Menjalankan npm install --ignore-scripts, atau menetapkan ignore-scripts = true secara global, dapat mencegah skrip preinstall dan postinstall berbahaya berjalan saat instalasi . Pengaturan serupa juga perlu dipertimbangkan untuk pnpm dan Yarn.
Serangan Mastra menunjukkan bahwa keamanan paket bukan hanya soal memeriksa kode aplikasi. Kredensial maintainer, pipeline rilis, serta perilaku otomatis saat instalasi sama pentingnya. Dengan memperpendek usia token dan mengikat publikasi pada identitas workflow yang terverifikasi, penyedia repositori berupaya mempersempit peluang satu akun yang dibajak berubah menjadi serangan berskala luas.