# डिपेंडबॉटच्या एका बंपने वर्म प्रकाशित केले. २२ पॅकेजेस.

Published: 2026-09-17

एक बॉट पुल रिक्वेस्ट उघडतो. एक माणूस २४ मिनिटांनी ती विलीन करतो. त्यानंतर ९५ मिनिटांनी, एका वर्मने त्याच्या CI मध्ये मिळालेल्या टोकनसह, त्याच्या २२ npm पॅकेजेसच्या ११० दुर्भावनापूर्ण आवृत्त्या त्याच्या नावाने प्रकाशित केल्या आहेत.

Canonical: https://thedailydiff.dev/mr/video/2026-09-17-dependabot-tanstack/

## या व्हिडिओमध्ये काय समाविष्ट आहे

- एक बॉट, एक माणूस, एक वर्म
- हे कसे घडले, npm ने ते का अनुमती दिली, कोणावर दोष येतो
- वेळापत्रक: विषारी कॅशे
- २१:४८ — डिपेंडबॉट बंप
- हे का काम करते

## धडे

- 0:00 एक बॉट, एक माणूस, एक वर्म
- 0:20 हे कसे घडले, npm ने ते का अनुमती दिली, कोणावर दोष येतो
- 0:30 वेळापत्रक: विषारी कॅशे
- 1:15 २१:४८ — डिपेंडबॉट बंप
- 1:50 हे का काम करते
- 2:20 git blame
- 2:45 ब्लास्ट रेडियस
- 3:00 निकाल

## अनुवादित प्रतिलेख

मूळ इंग्रजी निवेदनातून अनुवादित. उपलब्ध ऑडिओ आणि मथळे YouTube द्वारे नियंत्रित आहेत.

### एक बॉट, एक माणूस, एक वर्म

0:00 एक बॉट पुल रिक्वेस्ट उघडतो; एक माणूस चोवीस मिनिटांनंतर ती विलीन करतो. पंच्याण्णव मिनिटांनंतर, एका वर्मने प्रकाशित केले आहे त्याच्या शंभर दहा आवृत्त्या पॅकेजेस, त्याच्या नावाने. TanStack च्या पोस्टमॉरटममध्ये अपस्ट्रीम टाइमस्टॅम्प आहेत, डाउनस्ट्रीम मेंटेनरचे बाकीचे आहे, आणि हॅकर न्यूजनुसार याला अकराशे गुण आणि एक नाव मिळाले आहे: मिनी शाय-हुलुड. हे कसे घडते, npm याला का अनुमती देतो, कोणावर दोष येतो.

### हे कसे घडले, npm ने ते का अनुमती दिली, कोणावर दोष येतो

0:21 हे The Daily Diff आहे, पोस्टमॉरटम. ११ मे, सकाळी. एका नाव बदललेल्या फोर्कने TanStack Router विरुद्ध पुल रिक्वेस्ट उघडली. ते एका तासाच्या आत बंद होते, परंतु एका बेंचमार्क वर्कफ्लोने त्याचा कोड आधीच चालवला आहे आणि

### वेळापत्रक: विषारी कॅशे

0:33 एक विषारी कॅशे त्या की अंतर्गत सेव्ह केला आहे जी रिलीज वर्कफ्लो वापरेल. एकोणीस-वीस. एक कायदेशीर विलीनीकरण रिलीज चालवते. कॅशे परत येतो, एक बायनरी रनरची मेमरी वाचते, पब्लिश टोकन उचलते आणि बेचाळीस पॅकेजेसमधून चौऱ्याऐंशी आवृत्त्या पाठवते, वैध पुराव्यासह. चाचण्या अयशस्वी होतात. ते तरीही प्रकाशित करते. एकोणीस छत्तीस, एका StepSecurity संशोधकाने समस्या नोंदवली; नऊ UTC पर्यंत सर्व काही अप्रचलित केले जाते आणि सल्लागार बाहेर पडतो.

0:55 अप्रचलित म्हणजे गेलेले नाही: npm अवलंबित्व असलेल्या कोणत्याही गोष्टीला अप्रकाशित करण्यास नकार देतो, त्यामुळे ते कित्येक तास स्थापित करण्यायोग्य राहते. एकवीस अठ्ठेचाळीस. नऊ-तारांकित विमानचालन-डेटा प्रकल्पात, Dependabot त्याची नियमित पुल रिक्वेस्ट उघडतो: dev-dependencies गट बंप करा, तेरा अद्यतने. दोन विषारी TanStack आवृत्त्या आहेत. बावीस-बारा: विलीन केले. पब्लिश वर्कफ्लो टोकनसह npm C-I चालवतो

### २१:४८ — डिपेंडबॉट बंप

1:15 Scope मध्ये; एक prepare स्क्रिप्ट ते वाचते, आणि बावीस-सतरा वाजता वर्म प्रकाशित करते त्याच्या नावाने. टोकन पोहोचणाऱ्या प्रत्येक पॅकेजच्या पाच आवृत्त्या, अगदी एक जुना साइड प्रोजेक्टही: प्रत्येक गोष्टीसाठी एक क्लासिक टोकन. पंच्याण्णव मिनिटांत शंभर दहा आवृत्त्या. मध्यरात्रीनंतर त्याला ईमेलद्वारे कळते. हे का काम करते. एक: npm install डिफॉल्टनुसार अनोळखी लोकांच्या लाइफसायकल स्क्रिप्ट्स चालवते, आणि git डिपेंडन्सीच्या prepare स्क्रिप्टची गणना होते.

1:39 दोन: वर्मला एकच गोष्ट हवी आहे: एक टोकन जे दुसऱ्या घटकाशिवाय प्रकाशित होते. मग ते रजिस्ट्रीला विचारते की तो मेंटेनर आणखी काय मालकीचा आहे, आणि ते सर्व स्वतःसह पुन्हा प्रकाशित करते. तीन: साखळीतील काहीही व्यक्ती नाही.

### हे का काम करते

1:51 एक बॉट प्रस्तावित करतो, एक पाइपलाइन स्थापित करते, आणि वर्म उपकार परत करतो: त्याचे डेड-ड्रॉप शाखांना dependabot slash github-actions slash fremen असे नाव दिले आहे. git blame. npm चे स्थापित मॉडेल, पंचावन्न टक्के: स्क्रिप्ट स्थापित करताना चालतात, अप्रचलित स्थापित करण्यायोग्य राहते, दोन-घटक-बायपास टोकन अस्तित्वात आहेत. TanStack चे CI, पंचवीस: कॅशेमध्ये राइट ॲक्सेससह अनऑडिटेड पुल रिक्वेस्ट टार्गेट वर्कफ्लो चालू आहे फोर्क कोड. बंपची सवय, पंधरा: चोवीस मिनिटांत तेरा अद्यतने विलीन केली, खोलीत टोकन.

2:17 Dependabot, पाच: इतका विश्वासार्ह की वर्म त्याचा गणवेश घालतो.

### git blame

2:20 ब्लास्ट रेडियस: बेचाळीस TanStack पॅकेजेस. नऊ तारांकित प्रकल्पातून बावीस डाउनस्ट्रीम. वर्म मिस्ट्रलपर्यंत पोहोचल्यावर एकशे साठहून अधिक इकोसिस्टम-व्यापी. प्रत्येक अपस्ट्रीम आवृत्तीमध्ये वैध स्वाक्षरी होती: अधिकृतपणे तयार केली होती पाइपलाइन. सत्य. निकाल, पोस्टमॉरटम: SHIP IT. दोन्ही मेंटेनर्स एका दिवसात टाइमस्टॅम्प केलेले पोस्टमॉरटम पोस्ट करतात; तीन दिवसांत, डाउनस्ट्रीम पाइपलाइन ignore-scripts सह स्थापित होते, बिल्डपासून पब्लिश वेगळे करते आणि दीर्घकाळ टिकणारे टोकन टाकते.

### ब्लास्ट रेडियस

2:47 npm चे डिफॉल्ट बदलले नाहीत. सोमवार: install वर ignore-scripts, आणि ते चालवणाऱ्या जॉबमधून पब्लिश टोकन बाहेर काढा. तुम्ही अजूनही बोलू शकत नसलेली घटना मला पाठवा, टिप्पण्यांमध्ये, किंवा thedailydiff.dev वर. आणि आजचा हा फरक आहे.

### निकाल

3:00 मी Axrisi चा निको आहे. जबाबदारीने विलीन करा.

## स्रोत

- [TanStack postmortem (Tanner Linsley, May 11, refined May 15)](https://tanstack.com/blog/npm-supply-chain-compromise-postmortem) — tanstack.com
- [TanStack "Hardening TanStack After the npm Compromise" (May 12)](https://tanstack.com/blog/incident-followup) — tanstack.com
- [TanStack/router#7383 — the StepSecurity detection issue](https://github.com/TanStack/router/issues/7383) — github.com
- [Downstream incident post, @squawk/\* (May 12)](https://github.com/neilcochran/squawk/discussions/251) — github.com
- [Downstream hardening post (May 14)](https://github.com/neilcochran/squawk/discussions/264) — github.com
- [The Dependabot PR #246 (opened 21:48 UTC, merged 22:12)](https://github.com/neilcochran/squawk/pull/246) — github.com
- [@tan\_stack advisory post, 21:19 UTC](https://x.com/tan_stack/status/2053948103766716630) — x.com
- [StepSecurity — worm internals, bypass\_2fa search, Dependabot-style branch names](https://www.stepsecurity.io/blog/mini-shai-hulud-is-back-a-self-spreading-supply-chain-attack-hits-the-npm-ecosystem) — www.stepsecurity.io
- [Socket](https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack) — socket.dev
- [Aikido — "over 160 packages, including Mistral"](https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised) — www.aikido.dev
- [Hacker News (1,097 points)](https://news.ycombinator.com/item?id=48100706) — news.ycombinator.com
