प्रभावित पैकेजों की संयुक्त साप्ताहिक downloads 11 लाख से अधिक थीं । Microsoft ने 19 जून 2026 को उच्च विश्वास के साथ इस operation को Sapphire Sleet से जोड़ा ।
यह हमला किसी एक package की कमजोरी से ज्यादा publishing access और लंबे समय तक सक्रिय credentials के दुरुपयोग का उदाहरण था। पूरी attack chain इस तरह आगे बढ़ी:
हमलावरों ने Mastra के एक वैध maintainer को social engineering के जरिए निशाना बनाया और उसके npm credentials हासिल कर लिए । इस अकाउंट की पहचान ehindero के रूप में की गई। इसके पास पूरे @mastra scope में पैकेज publish करने की अनुमति थी ।
Hijacked अकाउंट का इस्तेमाल करके हमलावरों ने @mastra/* namespace के पैकेजों को 88 मिनट की अवधि में दोबारा publish किया। कुछ security reports के अनुसार bulk publication का मुख्य burst केवल 19 मिनट में पूरा हुआ । इतनी तेज गतिविधि से संकेत मिलता है कि इसके पीछे manual uploads के बजाय automated publishing script थी।
easy-day-js dependency के जरिए malicious codeहर compromised package version में easy-day-js नाम की dependency जोड़ी गई। यह असली और व्यापक रूप से इस्तेमाल होने वाली dayjs date library की typosquat थी—यानी ऐसा मिलता-जुलता नाम, जिसे देखकर developer गलती कर सकता है । Researchers ने इस campaign को भी “easy-day-js” नाम दिया है ।
npm install के साथ payload का automatic executionMalicious code npm के postinstall script के जरिए चलने के लिए तैयार किया गया था। इसका अर्थ है कि प्रभावित package install करते ही payload execute हो सकता था; application code चलाने की जरूरत नहीं थी ।
Payload ने developer workstations और build systems से cryptocurrency wallet keys, cloud credentials और CI/CD secrets हासिल करने की कोशिश की । इसके अलावा, malware ने TLS verification को disable किया और attacker-controlled infrastructure से second-stage stealer डाउनलोड किया ।
19 जून 2026 को Microsoft ने उच्च विश्वास के साथ कहा कि यह activity Sapphire Sleet की है। कंपनी ने attack infrastructure और post-compromise tactics, techniques and procedures (TTPs) को इस समूह के पहले दर्ज किए गए operations से मिलता-जुलता पाया ।
Sapphire Sleet एक North Korean state actor है, जो मुख्य रूप से financial और cryptocurrency sectors को निशाना बनाने के लिए जाना जाता है। Amazon Threat Intelligence ने भी इसे npm packages से जुड़े पहले के campaigns—जिनमें axios, debug, chalk और typo-crypto शामिल हैं—से जोड़ा है ।
Mastra incident ने package publishing में लंबे समय तक सक्रिय रहने वाली API keys के जोखिम को फिर सामने ला दिया। Microsoft ने NuGet ecosystem के लिए दो महत्वपूर्ण बदलावों पर जोर दिया है।
17 अगस्त 2026 से बनाए जाने वाले नए NuGet.org API keys की अधिकतम अवधि 365 दिन से घटाकर 30 दिन कर दी जाएगी ।
17 अगस्त 2026 से पहले बनाए गए सभी API keys 1 नवंबर 2026 को expire कर दिए जाएंगे । इसलिए NuGet maintainers को उससे पहले नए keys बनाने या Trusted Publishing पर migrate करने की जरूरत होगी।
Microsoft का तर्क है कि लंबे समय तक सक्रिय API keys ऐसे “loose strings” हैं जिन्हें खोना या leak करना आसान होता है। यदि attacker को ऐसा key मिल जाए, तो उसके पास trusted project के नाम से trojanized package publish करने के लिए लंबा समय रहता है ।
Microsoft maintainers को Trusted Publishing अपनाने की सलाह दे रहा है। सितंबर 2025 में शुरू किया गया यह workflow लंबे समय तक सुरक्षित रखे जाने वाले API keys की जगह OpenID Connect (OIDC) authentication का इस्तेमाल करता है ।
इसके प्रमुख लाभ हैं :
Trusted Publishing में CI/CD workflow, जैसे GitHub Actions, provider से cryptographically signed OIDC token मांगता है। NuGet.org इस token को registered publisher policy के विरुद्ध verify करता है और उसी publishing session के लिए temporary, single-use API key जारी करता है ।
Mastra attack के बाद npm और package-management ecosystem में पहले से चल रहे कई security measures और महत्वपूर्ण हो गए हैं:
npm login के जरिए मिलने वाले session tokens दो घंटे में expire हो जाते हैं ।इन उपायों का साझा लक्ष्य वही है जिसे Sapphire Sleet ने exploit किया था—एक ऐसे maintainer token पर निर्भरता, जो लंबे समय तक सक्रिय हो, कमजोर तरीके से सुरक्षित हो और पूरे package scope में publish करने की अनुमति देता हो।
npm install --ignore-scripts चलाएं या ignore-scripts = true सेट करें। इससे malicious postinstall scripts के automatic execution को रोका जा सकता है ।