
DPRK-लिंक्ड PolinRider आपूर्ति-श्रृंखला हमले पर तकनीकी डोजियर, जिसमें अस्पष्ट JS पेलोड इंजेक्शन, git इतिहास हेरफेर, C2 बुनियादी ढांचा, और 1,951 समझौता किए गए रिपॉजिटरी के लिए सुधार मार्गदर्शन का दस्तावेजीकरण किया गया है।

OpenSourceMalware टीम ने एक बड़े पैमाने पर खतरे के अभियान का पता लगाया है जो GitHub उपयोगकर्ताओं और संगठनों के रिपॉजिटरी में मैलवेयर इम्प्लांट कर रहा है। खतरा अभिनेता, PolinRider, ने सैकड़ों अद्वितीय मालिकों से संबंधित सैकड़ों सार्वजनिक GitHub रिपॉजिटरी में दुर्भावनापूर्ण अस्पष्ट JavaScript पेलोड इम्प्लांट किए हैं। इस अभियान से संबंधित सभी खतरे की रिपोर्ट देखने के लिए #polinrider का उपयोग करें, और समझौता किए गए रिपॉजिटरी की सूची के लिए इस ब्लॉग के अंत पर जाएं, जिसमें वे रिपॉजिटरी शामिल हैं जिन्हें हम तत्काल कार्रवाई के लिए प्राथमिकता देने की सलाह देते हैं। ध्यान रखें कि टैग वर्तमान डेटा प्राप्त करने का सबसे अच्छा तरीका है।
JavaScript पेलोड वास्तविक प्रोजेक्ट कॉन्फिग फ़ाइलों के अंत में जोड़ा जाता है — चुपचाप, फ़ाइल की वैध सामग्री के बाद — जिससे आकस्मिक कोड समीक्षा के दौरान इसे अनदेखा करना आसान हो जाता है। प्राथमिक संक्रमण वेक्टर एक समझौता किया गया npm पैकेज प्रतीत होता है जो इंस्टॉल या बिल्ड के दौरान निष्पादित होता है और प्रोजेक्ट रूट में कॉन्फिग फ़ाइलों में खुद को इंजेक्ट करता है। इससे भी बदतर, इस खतरा अभिनेता ने उसी तकनीक का उपयोग करके दुर्भावनापूर्ण NPM पैकेज भी बनाए हैं।
यह हमला बेहद सफल रहा है, एक समझौता किए गए ओपन सोर्स प्रोजेक्ट, Neutralinojs ने मैलवेयर को अपने सैकड़ों उपयोगकर्ताओं और योगदानकर्ताओं तक फैला दिया। Neutralinojs 8400 स्टार, 495 फोर्क और दर्जनों सक्रिय योगदानकर्ताओं वाला एक बहुत लोकप्रिय प्रोजेक्ट है। इस प्रकार के हमले की यही शक्ति है, क्योंकि खतरा केवल प्रारंभिक GitHub रिपॉजिटरी तक सीमित नहीं है, बल्कि उन सभी अन्य प्रोजेक्टों तक फैलता है जो उस ओपन सोर्स का उपयोग करते हैं।
OpenSourceMalware टीम ने इस अभियान को DPRK से जोड़ा है, और खतरा अभिनेता PolinRider, "Contagious Interview" और "TasksJacker" अभियानों से संबंधों के साथ एक ज्ञात Lazarus समूह योगदानकर्ता है।
यह अभियान पहले प्रकाशन के बाद से नाटकीय रूप से बढ़ा है। 2026-04-11 तक, OSM टीम ने 1,047 अद्वितीय मालिकों से संबंधित 1,951 सार्वजनिक GitHub रिपॉजिटरी की पुष्टि की है जो समझौता किए गए हैं। यह मूल प्रकाशन तिथि (8 मार्च: 675 रिपॉजिटरी / 352 मालिक) के बाद से पांच हफ्तों में 2.9× वृद्धि है।
| मीट्रिक | 8 मार्च (प्रारंभिक) | 11 अप्रैल (नवीनतम) | Δ |
|---|---|---|---|
| अद्वितीय संक्रमित रिपॉजिटरी | 675 | 1,951 | +1,276 |
| प्रभावित अद्वितीय मालिक | 352 | 1,047 | +695 |
| — व्यक्तिगत उपयोगकर्ता | 305 | ~930 | +625 |
| — संगठन | 47 | ~117 | +70 |
| देखे गए विशिष्ट ऑबफस्केटर वेरिएंट | 1 (rmcej%otb%) | 2 (rmcej%otb% + Cot%3t=shtP) | +1 |
| पुष्टि किए गए विशिष्ट इंजेक्शन वेक्टर | 1 (config file) | 4 (config file, .vscode/tasks.json, fake .woff2 font, malicious npm dep) | +3 |
| दस्तावेजित विशिष्ट C2 उपडोमेन | 1 (260120.vercel.app) | 6+ (देखें C2 Infrastructure) | +5 |
| ज्ञात हथियारीकृत टेक-होम टेम्पलेट | 0 | 2+ (ShoeVista, StakingGame) | +2 |

2026-04-10 से शुरू और 2026-04-11 तक जारी एक अनुवर्ती शिकार में, OSM टीम ने कई प्रमुख निष्कर्ष निकाले:
यह अभियान 5 हफ्तों में दोगुने से अधिक हो गया है। GitHub Code Search और Sourcegraph के माध्यम से क्रॉस-इंजन गणना (API की 1000-परिणाम सीमा से परे शोधन के साथ — नीचे कार्यप्रणाली देखें) ने पहले दिन हमारे v3 मास्टर में 1,556 अद्वितीय समझौता किए गए रिपॉजिटरी सामने लाए। दूसरे दिन एक राउंड-2 शिकार में npm-पैकेज-नाम पिवट्स, VS Code tasks.json / क्लाउड-प्रदाता पिवट्स, और नए खोजे गए default-configuration.vercel.app C2 उपडोमेन के माध्यम से और 215 नए रिपॉजिटरी जोड़े गए। मौजूदा affected_repos.csv कॉर्पस के खिलाफ डिडुपिंग के बाद, सही ज्ञात दायरा अब 1,951 अद्वितीय पीड़ित रिपॉजिटरी / 1,047 अद्वितीय मालिक है।
एक नया वेरिएंट देखा गया है। PolinRider ने आर्किटेक्चर को संरक्षित करते हुए अपने ऑबफस्केटर के सभी अद्वितीय फिंगरप्रिंट को घुमाया है। नया वेरिएंट सिग्नेचर मार्कर Cot%3t=shtP (पहले rmcej%otb% था), शफल सीड 1111436 (पहले 2857687), द्वितीयक सीड 3896884 (पहले 2667686), और डिकोडर फंक्शन नाम MDy (पहले _$_1e42) का उपयोग करता है। यह रोटेशन प्रकाशित rmcej_otb_payload YARA नियम के लिए एक चोरी प्रतिक्रिया प्रतीत होता है। दोनों वेरिएंट वर्तमान में जंगली में सक्रिय हैं। नीचे नया वेरिएंट: Cot%3t=shtP देखें।
खतरा अभिनेता पहले के पीड़ितों को फिर से संक्रमित कर रहा है। कम से कम एक पीड़ित रिपॉजिटरी (HassanHabibTahir/testclient) में अलग-अलग फ़ाइलों में दोनों वेरिएंट से मार्कर हैं, जो दर्शाता है कि अभिनेता के उपकरण पहले से समझौता किए गए होस्ट के खिलाफ फिर से चल रहे हैं और नए ऑबफस्केटर को इंजेक्ट कर रहे हैं।
PolinRider और TasksJacker ने परिचालन रूप से विलय कर लिया है। अब हमारे पास प्रत्यक्ष सबूत है कि एक ही खतरा अभिनेता एक ही पीड़ित आबादी के खिलाफ कॉन्फिग-फ़ाइल इंजेक्शन और .vscode/tasks.json curl-to-shell संक्रमण वेक्टर दोनों चला रहा है। 101 temp_auto_push.bat प्रसार-स्क्रिप्ट पीड़ितों में से 22 के पास दुर्भावनापूर्ण .vscode/tasks.json फ़ाइलें भी हैं, और कई हथियारीकृत टेक-होम / फर्जी-इंटरव्यू टेम्पलेट प्रोजेक्ट की पहचान की गई है — नीचे हथियारीकृत टेक-होम टेम्पलेट देखें। OSM आगे बढ़ते हुए दो क्लस्टर को #polinrider के तहत समेकित कर रहा है।
दो हथियारीकृत टेक-होम टेस्ट प्रोजेक्ट की पहचान की गई: ShoeVista (एक नकली Tailwind ई-कॉमर्स मूल्यांकन जो client/package.json में दुर्भावनापूर्ण tailwindcss-style-animate ^1.1.6 के साथ आता है) और StakingGame (एक नकली ब्लॉकचेन / VS Code ऑटोमेशन प्रोजेक्ट जिसकी पहचान tasks.json में UUID e9b53a7c-2342-4b15-b02d-bd8b8f6a03f9 द्वारा की गई है)। कम से कम 46 + 42 डेवलपर्स ने इन परीक्षणों का प्रयास किया और समझौता किए गए। Contagious Interview लूर प्लेबुक का हिस्सा।
पांच नए C2 उपडोमेन खोजे गए जो .vscode/tasks.json curl | bash पेलोड में उपयोग किए जा रहे हैं, सभी Vercel पर होस्ट किए गए हैं:
default-configuration.vercel.app (सबसे अधिक उपयोग, ~106 पीड़ित संदर्भ)vscode-settings-bootstrap.vercel.appvscode-settings-config.vercel.appvscode-bootstrapper.vercel.appvscode-load-config.vercel.appसभी पैटर्न https://<sub>.vercel.app/settings/(mac|linux|win)?flag=<N> का अनुसरण करते हैं। C2 Infrastructure अनुभाग में जोड़ा गया।
OSM ने इस दो-दिवसीय शिकार में 821 नई खतरे की रिपोर्ट प्रस्तुत की, जिससे कुल OSM PolinRider प्रविष्टियाँ ~1,700 हो गईं। 821 सबमिशन का वेरिएंट ब्रेकडाउन: 591 मूल वेरिएंट (rmcej%otb%), 113 केवल-प्रसार (temp_auto_push.bat), 45 malicious_npm (ShoeVista/devhire क्लस्टर), 27 tasksjacker, 1 नया वेरिएंट (Cot%3t=shtP), 44 अन्य।
नए उच्च-उपज खोज पिवट्स की पहचान की गई जो JS पेलोड साफ हो जाने पर भी पीड़ितों को ढूंढते हैं। सबसे मजबूत हैं filename:temp_auto_push.bat (101 पुष्टि-दुर्भावनापूर्ण परिणाम, 100% सही-सकारात्मक दर) और "default-configuration.vercel.app" (106 हिट)। 44 यादृच्छिक सत्यापनों में नमूना झूठी-सकारात्मक दर 0% थी। नीचे रिफाइनमेंट कार्यप्रणाली देखें।
एक नए इंजेक्शन वेक्टर की पुष्टि की गई: कम से कम एक पीड़ित (AgbaD/odoo) में .woff2 फ़ॉन्ट फ़ाइल (public/fonts/fa-solid-400.woff2) में छिपा हुआ अस्पष्ट JS पेलोड है जो Node के माध्यम से निष्पादित होता है — यह पुष्टि करता है कि अभियान एक ही लक्ष्य के खिलाफ कई इंजेक्शन वेक्टर का उपयोग करता है।