# ការដំឡើង Dependabot បង្កើត worm។ 22 កញ្ចប់។

Published: 2026-09-17

Bot បើកសំណើទាញ។ មនុស្សម្នាក់បញ្ចូលវា 24 នាទីក្រោយមក។ 95 នាទីក្រោយមក worm បានបោះពុម្ពកំណែព្យាបាទចំនួន 110 នៃ 22 កញ្ចប់ npm របស់គាត់ ក្រោមឈ្មោះរបស់គាត់ ជាមួយនឹងថូខឹនដែលវាបានរកឃើញនៅក្នុង CI របស់គាត់។

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

## អ្វីដែលវីដេអូនេះគ្របដណ្ដប់

- Bot មួយ មនុស្សម្នាក់ Worm មួយ
- វាកើតឡើងដោយរបៀបណា ហេតុអ្វី npm អនុញ្ញាតវា អ្នកណាជាអ្នកទទួលខុសត្រូវ
- កាលបរិច្ឆេទ: cache ដែលមានជាតិពុល
- 21:48 — ការដំឡើង Dependabot
- ហេតុអ្វីបានជាវាដំណើរការ

## ជំពូក

- 0:00 Bot មួយ មនុស្សម្នាក់ Worm មួយ
- 0:20 វាកើតឡើងដោយរបៀបណា ហេតុអ្វី npm អនុញ្ញាតវា អ្នកណាជាអ្នកទទួលខុសត្រូវ
- 0:30 កាលបរិច្ឆេទ: cache ដែលមានជាតិពុល
- 1:15 21:48 — ការដំឡើង Dependabot
- 1:50 ហេតុអ្វីបានជាវាដំណើរការ
- 2:20 git blame
- 2:45 កាំផ្ទុះ
- 3:00 សាលក្រម

## កំណត់ត្រាដែលបានបកប្រែ

បកប្រែចេញពីការនិទានដើមជាភាសាអង់គ្លេស។ សំឡេង និងចំណងជើងរងដែលមានគឺស្ថិតនៅក្រោមការគ្រប់គ្រងរបស់ YouTube។

### Bot មួយ មនុស្សម្នាក់ Worm មួយ

0:00 Bot បើកសំណើទាញ; មនុស្សម្នាក់បញ្ចូលវាម្ភៃបួននាទីក្រោយមក។ កៅសិបប្រាំនាទីក្រោយមក worm បានបោះពុម្ព មួយរយដប់កំណែនៃរបស់គាត់ កញ្ចប់ ដូចគាត់។ ឯកសារក្រោយស្លាប់របស់ TanStack មានត្រាពេលវេលាដើម ឯកសារអ្នកថែទាំខាងក្រោម មាននៅសល់ ហើយ Hacker News ផ្តល់ពិន្ទុមួយពាន់មួយរយ និងឈ្មោះមួយថា: Mini Shai-Hulud។ វាកើតឡើងដោយរបៀបណា ហេតុអ្វី npm អនុញ្ញាតវា អ្នកណាជាអ្នកទទួលខុសត្រូវ។

### វាកើតឡើងដោយរបៀបណា ហេតុអ្វី npm អនុញ្ញាតវា អ្នកណាជាអ្នកទទួលខុសត្រូវ

0:21 នេះជា The Daily Diff ក្រោយស្លាប់។ ថ្ងៃទី 11 ខែឧសភា ពេលព្រឹក។ ច្បាប់ចម្លងដែលបានប្តូរឈ្មោះបានបើកសំណើទាញប្រឆាំងនឹង TanStack Router។ វានឹងបិទក្នុងរយៈពេលមួយម៉ោង ប៉ុន្តែដំណើរការ benchmark រួចហើយបានដំណើរការកូដរបស់វា និង

### កាលបរិច្ឆេទ: cache ដែលមានជាតិពុល

0:33 បានរក្សាទុក cache ដែលមានជាតិពុលក្រោមគន្លឹះដែលដំណើរការចេញផ្សាយនឹងប្រើប្រាស់។ ម៉ោងដប់ប្រាំបួនម្ភៃ។ ការបញ្ចូលស្របច្បាប់ដំណើរការការចេញផ្សាយ។ cache ត្រឡប់មកវិញ កូដគោលពីរអានអង្គចងចាំរបស់ runner ដកថូខឹនបោះពុម្ព ហើយចេញផ្សាយប៉ែតសិបបួនកំណែឆ្លងកាត់សែសិបពីរ កញ្ចប់ ជាមួយនឹងភស្តុតាងត្រឹមត្រូវ។ ការធ្វើតេស្តបរាជ័យ។ វានឹងបោះពុម្ពទោះជាយ៉ាងណា។ ដប់ប្រាំបួនសែសិបប្រាំមួយ អ្នកស្រាវជ្រាវ StepSecurity ដាក់ពាក្យបណ្តឹង។ នៅម៉ោងប្រាំបួន UTC អ្វីៗទាំងអស់ត្រូវបានលុបចោលហើយការណែនាំត្រូវបានចេញផ្សាយ។

0:55 ការលុបចោលមិនមែនជាការបាត់បង់ទេ: npm បដិសេធមិនលុបអ្វីដែលពឹងផ្អែកលើវាទេ ដូច្នេះវានៅតែអាចដំឡើងបានជាច្រើនម៉ោង។ ម្ភៃមួយសែសិបប្រាំបី។ នៅក្នុងគម្រោងទិន្នន័យអាកាសចរណ៍ប្រាំបួនផ្កាយ Dependabot បើកសំណើទាញធម្មតារបស់វា: ដំឡើងក្រុម dev-dependencies ការអាប់ដេតដប់បី។ ពីរជាកំណែ TanStack ដែលមានជាតិពុល។ ម្ភៃពីរដប់ពីរ: រួមបញ្ចូលគ្នា។ ដំណើរការបោះពុម្ពដំណើរការ npm C-I ជាមួយនឹងថូខឹននៅក្នុង

### 21:48 — ការដំឡើង Dependabot

1:15 វិសាលភាព; ស្គ្រីប prepare អានវា ហើយនៅម៉ោងម្ភៃពីរដប់ប្រាំពីរ worm បោះពុម្ព ដូចគាត់។ ប្រាំកំណែនៃកញ្ចប់នីមួយៗដែលថូខឹនទៅដល់ សូម្បីតែគម្រោងចាស់មួយ: ថូខឹនបុរាណមួយសម្រាប់អ្វីៗទាំងអស់។ មួយរយដប់កំណែក្នុងរយៈពេលកៅសិបប្រាំនាទី។ គាត់ដឹងតាមអ៊ីម៉ែល ក្រោយពាក់កណ្តាលអធ្រាត្រ។ ហេតុអ្វីបានជាវាដំណើរការ។ ទីមួយ: npm install ដំណើរការស្គ្រីបវដ្តជីវិតរបស់មនុស្សចម្លែកតាមលំនាំដើម ហើយស្គ្រីប prepare របស់ git dependency រាប់បញ្ចូល។

1:39 ទីពីរ: worm ចង់បានរឿងមួយ: ថូខឹនដែលបោះពុម្ពដោយគ្មានកត្តាទីពីរ។ បន្ទាប់មកវាសួរ registry ថាអ្នកថែទាំនោះមានអ្វីទៀត ហើយបោះពុម្ពវាទាំងអស់ឡើងវិញជាមួយនឹងខ្លួនវាផ្ទាល់នៅខាងក្នុង។ ទីបី: គ្មានអ្វីនៅក្នុងខ្សែសង្វាក់នេះជាមនុស្សទេ។

### ហេតុអ្វីបានជាវាដំណើរការ

1:51 Bot មួយស្នើ ដំណើរការ pipeline ដំឡើង ហើយ worm ឆ្លើយតប: របស់វា សាខា dead-drop មានឈ្មោះ dependabot ស្លាស github-actions ស្លាស fremen។ git blame។ ម៉ូដែលដំឡើងរបស់ npm ហាសិបប្រាំភាគរយ: ស្គ្រីបដំណើរការនៅពេលដំឡើង ដែលត្រូវបានលុបចោលនៅតែអាចដំឡើងបាន ថូខឹនបំបាត់ការផ្ទៀងផ្ទាត់ពីរកត្តាមាន។ CI របស់ TanStack ម្ភៃប្រាំ: ដំណើរការ workflow គោលដៅសំណើទាញដែលមិនបានត្រួតពិនិត្យដំណើរការ កូដ fork ជាមួយនឹងសិទ្ធិសរសេរទៅ cache។ ទម្លាប់ដំឡើង ដប់ប្រាំ: ដប់បីការអាប់ដេតត្រូវបានបញ្ចូលក្នុងរយៈពេលម្ភៃបួននាទី ថូខឹននៅក្នុងបន្ទប់។

2:17 Dependabot ប្រាំ: ដូច្នេះបានទុកចិត្តថា worm ពាក់ឯកសណ្ឋានរបស់វា។

### git blame

2:20 កាំផ្ទុះ: សែសិបពីរ TanStack packages។ ម្ភៃពីរបន្តពីគម្រោងដែលមានផ្កាយប្រាំបួន។ ជាងមួយរយហុកសិបនៅទូទាំងប្រព័ន្ធអេកូឡូស៊ីនៅពេលដែល worm ទៅដល់ Mistral។ កំណែដើមនីមួយៗមានហត្ថលេខាត្រឹមត្រូវ: បានបង្កើតដោយផ្លូវការ pipeline។ ពិត។ សាលក្រម ក្រោយស្លាប់: SHIP IT។ អ្នកថែទាំទាំងពីរបានបង្ហោះ postmortems ដែលមានត្រាពេលវេលាក្នុងរយៈពេលមួយថ្ងៃ; ក្នុងរយៈពេលបីថ្ងៃ pipeline បន្តដំឡើងជាមួយ ignore-scripts បំបែក build ពី publish ហើយទម្លាក់ថូខឹនដែលមានអាយុកាលវែង។

### កាំផ្ទុះ

2:47 លំនាំដើមរបស់ npm មិនបានផ្លាស់ប្តូរទេ។ ថ្ងៃច័ន្ទ: ignore-scripts នៅលើ install ហើយថូខឹន publish ចេញពី job ដែល ដំណើរការវា។ ផ្ញើឧប្បត្តិហេតុដែលអ្នកនៅតែមិនត្រូវបានអនុញ្ញាតឱ្យនិយាយអំពីមកខ្ញុំ នៅក្នុងមតិយោបល់ ឬនៅ thedailydiff.dev។ ហើយនោះជា diff សម្រាប់ថ្ងៃនេះ។

### សាលក្រម

3:00 ខ្ញុំ Niko មកពី 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
