Nx सप्लाई-चेन उल्लंघन (S1ngularity): चुराए गए प्रकाशित टोकन के माध्यम से npm पर दुर्भावनापूर्ण Nx पैकेज प्रकाशित किए गए

Node.jsnpmसुरक्षाDevOps

प्रमुख अपडेट

26 अगस्त, 2025 को हमलावरों ने GitHub Actions वर्कफ़्लो इंजेक्शन का लाभ उठाकर NPM प्रकाशन टोकन चुराने के बाद लगभग चार घंटे तक npm पर कई Nx पैकेज के दुर्भावनापूर्ण संस्करण प्रकाशित किए। दुर्भावनापूर्ण पैकेजों में पोस्टइंस्टॉल कोड शामिल था जो स्थानीय मशीनों पर रहस्यों को स्कैन करता था और स्थानीय AI CLIs (रिपोर्ट किए गए उदाहरण: Claude, Gemini) का उपयोग करके एक्सफिल्ट्रेशन के लिए फ़ाइलों की पहचान करने में मदद करता था, फिर परिणामों को सार्वजनिक GitHub रिपोजिटरी में अपलोड कर दिया। Nx ने विषाक्त पैकेज हटा दिए हैं, टोकन रद्द कर दिए हैं, एक विस्तृत पोस्टमॉर्टम और सलाह प्रकाशित की है, और मैनुअल अनुमोदनों के साथ npm ट्रस्टेड पब्लिशर्स / OIDC पर प्रकाशन स्थानांतरित कर दिया है।

यह क्यों महत्वपूर्ण है

यह एक उच्च-प्रभाव सप्लाई-चेन समझौता है जिसका सीधे डेवलपर पर प्रभाव पड़ता है: Nx का व्यापक रूप से JavaScript/TypeScript मोनोरेपो और CI पाइपलाइनों में उपयोग किया जाता है, इसलिए विषाक्त पैकेजों की एक छोटी खिड़की ने कई डेवलपर मशीनों और CI सिस्टम में जोखिम को बढ़ा दिया। यह घटना तीन जुड़े हुए विफलता मोड दिखाती है जिन्हें आपको व्यावहारिक खतरों के रूप में मानना चाहिए: असुरक्षित GitHub Actions पैटर्न (pull_request_target के साथ असुरक्षित इनपुट और अत्यधिक व्यापक वर्कफ़्लो अनुमतियाँ), लंबे समय तक जीवित/अधिकृत प्रकाशन क्रेडेंशियल्स, और मैलवेयर जो स्थानीय AI डेवलपर उपकरणों का उपयोग अपने अन्वेषण/एक्सफिल्ट्रेशन टूलकिट के हिस्से के रूप में करता है।

व्यवसायियों के लिए, तत्काल परिचालन क्रियाएँ सीधी और तात्कालिक हैं: पुष्टि करें कि क्या आपने प्रभावित Nx पैकेज संस्करणों में से कोई इंस्टॉल किया है और उन संस्करणों वाले किसी भी सिस्टम को संभावित रूप से समझौता किया हुआ मानें; किसी भी उजागर टोकन और क्रेडेंशियल्स (GitHub और npm) को घुमाएँ और रद्द करें, GitHub ऑडिट/सुरक्षा लॉग की जांच करें कि क्या अप्रत्याशित रिपोजिटरी या CLI गतिविधि है, पैकेज और NPX कैश को साफ करें, और पैच किए गए Nx रिलीज़ पर अपडेट करें। CI/DevOps पक्ष पर, इस वेक्टर को सक्षम करने वाले पैटर्न को समाप्त करें: असुरक्षित इनपुट के लिए pull_request_target से बचें, वर्कफ़्लो अनुमतियों को न्यूनतम करें (डिफ़ॉल्ट रूप से केवल पढ़ने के लिए टोकन), उन प्रकाशन पाइपलाइनों से workflow_dispatch को हटा दें जो असुरक्षित ट्रिगर्स को स्वीकार करती हैं, रजिस्ट्री प्रकाशन के लिए OIDC और छोटे जीवनकाल वाले क्रेडेंशियल्स को प्राथमिकता दें, फोर्क या बाहरी योगदानकर्ताओं से उत्पन्न रिलीज़ के लिए स्पष्ट मैनुअल अनुमोदनों की आवश्यकता करें, और प्रकाशित कलाकृतियों के लिए उत्पत्ति जांचें। अंत में, स्थानीय डेवलपर वातावरण को संभावित एक्सफिल्ट्रेशन लक्ष्यों के रूप में मानें: विकास मशीनों पर प्लेनटेक्स्ट रहस्यों को सीमित करें, क्रेडेंशियल प्रबंधकों का उपयोग करें, और असामान्य आउटबाउंड गतिविधि या हाल ही में बनाए गए सार्वजनिक रिपोजिटरी की निगरानी करें जो लीक किए गए डेटा को शामिल कर सकते हैं।

यह घटना एक अनुस्मारक है कि सप्लाई-चेन स्वच्छता के लिए सुरक्षित CI पैटर्न और त्वरित घटना प्लेबुक दोनों की आवश्यकता होती है; केवल टूलिंग को अपग्रेड करना पर्याप्त नहीं है जब तक कि प्रकाशन प्रवाह और वर्कफ़्लो अनुमतियाँ लॉक नहीं की जातीं और टोकन जीवनकाल को सीमित नहीं किया जाता।

स्रोत

आगे पढ़ें