# ஒரு டிபெண்டாபாட் பம்ப் ஒரு புழுவை வெளியிட்டது. 22 தொகுப்புகள்.

Published: 2026-09-17

ஒரு போட் ஒரு புல் கோரிக்கையைத் திறக்கிறது. ஒரு மனிதன் அதை 24 நிமிடங்களுக்குப் பிறகு இணைக்கிறான். அதற்கு 95 நிமிடங்களுக்குப் பிறகு, ஒரு புழு, அவனது CI இல் கண்டறிந்த டோக்கன் மூலம், அவனது பெயரில், அவனது 22 npm தொகுப்புகளின் 110 தீங்கிழைக்கும் பதிப்புகளை வெளியிட்டுள்ளது.

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

## இந்த வீடியோ எதைப் பற்றி விவாதிக்கிறது

- ஒரு போட், ஒரு மனிதன், ஒரு புழு
- அது எப்படி நடந்தது, ஏன் npm அதை அனுமதித்தது, யார் பழிவாங்கப்படுகிறார்கள்
- காலவரிசை: நஞ்சூட்டப்பட்ட கேச்
- 21:48 — டிபெண்டாபாட் பம்ப்
- அது ஏன் வேலை செய்கிறது

## அத்தியாயங்கள்

- 0:00 ஒரு போட், ஒரு மனிதன், ஒரு புழு
- 0:20 அது எப்படி நடந்தது, ஏன் npm அதை அனுமதித்தது, யார் பழிவாங்கப்படுகிறார்கள்
- 0:30 காலவரிசை: நஞ்சூட்டப்பட்ட கேச்
- 1:15 21:48 — டிபெண்டாபாட் பம்ப்
- 1:50 அது ஏன் வேலை செய்கிறது
- 2:20 git blame
- 2:45 தாக்கப் பகுதி
- 3:00 தீர்ப்பு

## மொழிபெயர்க்கப்பட்ட டிரான்ஸ்கிரிப்ட்

அசல் ஆங்கில விளக்கத்திலிருந்து மொழிபெயர்க்கப்பட்டது. கிடைக்கும் ஆடியோ மற்றும் தலைப்புகள் YouTube ஆல் கட்டுப்படுத்தப்படுகின்றன.

### ஒரு போட், ஒரு மனிதன், ஒரு புழு

0:00 ஒரு போட் ஒரு புல் கோரிக்கையைத் திறக்கிறது; ஒரு மனிதன் அதை இருபத்தி நான்கு நிமிடங்களுக்குப் பிறகு இணைக்கிறான். தொண்ணூற்று ஐந்து நிமிடங்கள் கழித்து, ஒரு புழு வெளியிட்டுள்ளது அவரது தொகுப்புகளின் நூற்று பத்து பதிப்புகள், அவராகவே. TanStack இன் மரண ஆய்வு, அப்ஸ்ட்ரீம் நேர முத்திரைகளையும், டவுன்ஸ்ட்ரீம் பராமரிப்பாளரின் மற்றவற்றையும் கொண்டுள்ளது, மேலும் Hacker News அதற்கு ஆயிரத்து நூறு புள்ளிகளையும் ஒரு பெயரையும் கொடுக்கிறது: Mini ஷாய்-ஹுலுட். இது எப்படி நிகழ்கிறது, ஏன் npm இதை அனுமதிக்கிறது, யார் பொறுப்பேற்கிறார்கள்.

### அது எப்படி நடந்தது, ஏன் npm அதை அனுமதித்தது, யார் பழிவாங்கப்படுகிறார்கள்

0:21 இது The Daily Diff, மரண ஆய்வு. மே 11, காலை. ஒரு மறுபெயரிடப்பட்ட கிளை TanStack Router க்கு எதிராக ஒரு புல் கோரிக்கையைத் திறக்கிறது. அது ஒரு மணி நேரத்திற்குள் மூடப்படும், ஆனால் ஒரு பெஞ்ச்மார்க் பணிப்பாய்வு அதன் குறியீட்டை ஏற்கனவே இயக்கி

### காலவரிசை: நஞ்சூட்டப்பட்ட கேச்

0:33 வெளியீட்டு பணிப்பாய்வு பயன்படுத்தும் விசையின் கீழ் ஒரு நச்சு cache ஐ சேமித்துள்ளது. பத்தொன்பது-இருபது. ஒரு சட்டபூர்வமான இணைவு வெளியீட்டை இயக்குகிறது. cache திரும்பி வருகிறது, ஒரு பைனரி ரன்னரின் நினைவகத்தைப் படிக்கிறது, வெளியீட்டு டோக்கனை எடுக்கிறது, மேலும் நாற்பத்தி இரண்டு தொகுப்புகளில் எண்பத்தி நான்கு பதிப்புகளை சரியான ஆதாரத்துடன் அனுப்புகிறது. சோதனைகள் தோல்வியடைகின்றன. இருப்பினும் அது வெளியிடுகிறது. பத்தொன்பது நாற்பத்தி ஆறு, ஒரு StepSecurity ஆராய்ச்சியாளர் சிக்கலை பதிவு செய்கிறார்; ஒன்பது UTC க்குள் அனைத்தும் காலாவதியாகிவிட்டது மற்றும் அறிவிப்பு வெளியே வந்துவிட்டது.

0:55 காலாவதியானது காணாமல் போகவில்லை: npm சார்புடைய எதையும் வெளியிட மறுக்கிறது, எனவே இது பல மணிநேரங்களுக்கு நிறுவக்கூடியதாகவே உள்ளது. இருபத்தி ஒன்று நாற்பத்தி எட்டு. ஒரு ஒன்பது-நட்சத்திர விமானப் போக்குவரத்து-தரவு திட்டத்தில், Dependabot தனது வழக்கமான புல் கோரிக்கையைத் திறக்கிறது: dev-dependencies குழுவை பம்ப் செய்யவும், பதிமூன்று புதுப்பிப்புகள். இரண்டு நச்சு TanStack பதிப்புகள். இருபத்தி இரண்டு-பன்னிரண்டு: இணைக்கப்பட்டது. வெளியீட்டு பணிப்பாய்வு npm C-I ஐ டோக்கனுடன்

### 21:48 — டிபெண்டாபாட் பம்ப்

1:15 Scope இல் இயக்குகிறது; ஒரு prepare ஸ்கிரிப்ட் அதைப் படிக்கிறது, மேலும் இருபத்தி இரண்டு-பதினேழில் புழு அவராகவே வெளியிடுகிறது. டோக்கன் அடையும் ஒவ்வொரு தொகுப்பிலும் ஐந்து பதிப்புகள், ஒரு பழைய பக்க திட்டம் கூட: எல்லாவற்றிற்கும் ஒரு கிளாசிக் டோக்கன். தொண்ணூற்று ஐந்து நிமிடங்களில் நூற்று பத்து பதிப்புகள். நள்ளிரவுக்குப் பிறகு, அவர் மின்னஞ்சல் மூலம் கண்டுபிடிக்கிறார். அது ஏன் வேலை செய்கிறது. ஒன்று: npm install இயல்புநிலையாக அந்நியர்களின் lifecycle ஸ்கிரிப்ட்களை இயக்குகிறது, மற்றும் ஒரு git dependency இன் prepare ஸ்கிரிப்ட் கணக்கிடப்படுகிறது.

1:39 இரண்டு: புழுவுக்கு ஒரு விஷயம் மட்டுமே தேவை: இரண்டாவது காரணி இல்லாமல் வெளியிடும் ஒரு டோக்கன். பின்னர் அந்த பராமரிப்பாளர் வேறு என்ன வைத்திருக்கிறார் என்று பதிவேட்டில் கேட்கிறது, மற்றும் அனைத்தையும் தனக்குள்ளேயே மீண்டும் வெளியிடுகிறது. மூன்று: சங்கிலியில் எதுவும் ஒரு நபர் அல்ல.

### அது ஏன் வேலை செய்கிறது

1:51 ஒரு போட் முன்மொழிகிறது, ஒரு பைப்லைன் நிறுவுகிறது, மேலும் புழு சலுகையைத் திருப்பித் தருகிறது: அதன் dead-drop கிளைகள் dependabot slash github-actions slash fremen என பெயரிடப்பட்டுள்ளன. git blame. npm இன் install மாதிரி, ஐம்பத்தைந்து சதவீதம்: நிறுவலில் ஸ்கிரிப்ட்கள் இயங்குகின்றன, காலாவதியானது நிறுவக்கூடியதாகவே உள்ளது, இரண்டு-காரணி-தடுப்பு டோக்கன்கள் உள்ளன. TanStack இன் CI, இருபத்தைந்து: ஒரு தணிக்கை செய்யப்படாத pull request target workflow cache க்கு எழுத அனுமதி கொண்ட fork குறியீட்டை இயக்குகிறது. பம்ப் பழக்கம், பதினைந்து: பதிமூன்று புதுப்பிப்புகள் இருபத்தி நான்கு நிமிடங்களில் இணைக்கப்பட்டன, அறையில் டோக்கன்.

2:17 Dependabot, ஐந்து: புழு அதன் சீருடையை அணியும் அளவுக்கு நம்பப்படுகிறது.

### git blame

2:20 தாக்கப் பகுதி: நாற்பத்தி இரண்டு TanStack தொகுப்புகள். ஒன்பது நட்சத்திரங்கள் கொண்ட ஒரு திட்டத்திலிருந்து இருபத்தி இரண்டு டவுன்ஸ்ட்ரீம். Mistral ஐ புழு அடையும்போது நூற்று அறுபதுக்கும் அதிகமான சுற்றுச்சூழல் அளவில். ஒவ்வொரு அப்ஸ்ட்ரீம் பதிப்பும் ஒரு செல்லுபடியாகும் கையொப்பத்தைக் கொண்டிருந்தது: அதிகாரப்பூர்வ பைப்லைன் மூலம் உருவாக்கப்பட்டது. உண்மை. தீர்ப்பு, மரண ஆய்வு: SHIP IT. இரண்டு பராமரிப்பாளர்களும் ஒரு நாளுக்குள் நேர முத்திரையிடப்பட்ட மரண ஆய்வுகளை வெளியிடுகிறார்கள்; மூன்று நாட்களுக்குள், டவுன்ஸ்ட்ரீம் பைப்லைன் ignore-scripts உடன் நிறுவுகிறது, பில்ட் மற்றும் வெளியீட்டைப் பிரிக்கிறது, மேலும் நீண்ட கால டோக்கனை நீக்குகிறது.

### தாக்கப் பகுதி

2:47 npm இன் இயல்புநிலைகள் நகரவில்லை. திங்கள்: நிறுவலில் 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
