# Dependabot-ի թարմացումը որդ է հրապարակել։ 22 փաթեթ։

Published: 2026-09-17

Բոտը քաշելու հարցում է բացում։ Մարդը միաձուլում է այն 24 րոպե անց։ Դրանից 95 րոպե հետո որդը հրապարակել է իր 22 npm փաթեթների 110 վնասակար տարբերակ՝ իր անունով, իր CI-ում գտած թոքենով։

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

## Ինչ է ընդգրկում այս տեսանյութը

- Բոտ, մարդ, որդ
- Ինչպես դա տեղի ունեցավ, ինչու npm-ը թույլ տվեց, ում է մեղքը
- Ժամանակացույց. թունավորված քեշը
- 21:48 — Dependabot-ի թարմացումը
- Ինչու է այն աշխատում

## Գլուխներ

- 0:00 Բոտ, մարդ, որդ
- 0:20 Ինչպես դա տեղի ունեցավ, ինչու npm-ը թույլ տվեց, ում է մեղքը
- 0:30 Ժամանակացույց. թունավորված քեշը
- 1:15 21:48 — Dependabot-ի թարմացումը
- 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 պահել է թունավորված քեշը այն բանալիով, որը կօգտագործի թողարկման աշխատանքային հոսքը։ Տասնինը քսան։ Օրինական միաձուլումը գործարկում է թողարկումը։ Քեշը վերադառնում է, բինարին կարդում է աշխատանքը կատարողի հիշողությունը, վերցնում է հրապարակման թոքենը և առաքում ութսունչորս տարբերակ քառասուներկու փաթեթների միջոցով, վավերական ծագումով։ Թեստերը ձախողվում են։ Այնուամենայնիվ, այն հրապարակում է։ Տասնինը քառասունվեցին StepSecurity-ի հետազոտողը խնդիր է բացում. UTC ժամով իննին ամեն ինչ հնացած է, և խորհրդատվությունը դուրս է եկել։

0:55 Հնացածը չի անհետացել. npm-ը հրաժարվում է հեռացնել որևէ բան կախյալներով, այսպիսով, այն մնում է տեղադրելի ժամերով։ Քսանմեկ քառասունութ։ Ինը աստղանի ավիացիոն տվյալների նախագծում, Dependabot-ը բացում է իր սովորական քաշելու հարցումը՝ թարմացնել dev-dependencies խումբը, տասներեք թարմացում։ Երկուսը թունավորված TanStack տարբերակներ են։ Քսաներկու-տասներկու. միաձուլված։ Հրապարակման աշխատանքային հոսքը գործարկում է npm C-I-ը թոքենով

### 21:48 — Dependabot-ի թարմացումը

1:15 շրջանակում. նախապատրաստական սկրիպտը կարդում է այն, և քսաներկու-տասնյոթին որդը հրապարակում է որպես ինքը։ Թոքենին հասանելի յուրաքանչյուր փաթեթի հինգ տարբերակ, նույնիսկ հին կողմնակի նախագիծ՝ մեկ դասական թոքեն ամեն ինչի համար։ Հարյուր տասը տարբերակ իննսունհինգ րոպեում։ Նա պարզում է էլեկտրոնային փոստով, կեսգիշերից հետո։ Ինչու է այն աշխատում։ Մեկ. npm install-ը լռելյայն գործարկում է անծանոթների կյանքի ցիկլի սկրիպտերը, և git կախվածության նախապատրաստական սկրիպտը հաշվի է առնվում։

1:39 Երկու. որդը մեկ բան է ուզում՝ թոքեն, որը հրապարակում է առանց երկրորդ գործոնի։ Այնուհետև այն հարցնում է ռեգիստրին, թե ուրիշ ինչ ունի այդ սպասարկողը, և վերահրապարակում է ամբողջը իր ներսում։ Երեք. շղթայում ոչինչ մարդ չէ։

### Ինչու է այն աշխատում

1:51 Բոտն առաջարկում է, խողովակաշարը տեղադրում է, իսկ որդը պատասխանում է փոխադարձաբար. դրա մահացած-կաթիլային ճյուղերը կոչվում են dependabot slash github-actions slash fremen։ git blame. npm-ի տեղադրման մոդելը, հիսունհինգ տոկոս. սկրիպտերն աշխատում են տեղադրման ժամանակ, հնացածը մնում է տեղադրելի, գոյություն ունեն երկգործոնային շրջանցման թոքեններ։ TanStack-ի CI, քսանհինգ. չստուգված քաշելու հարցման թիրախային աշխատանքային հոսքը գործարկում է ֆորկ կոդ՝ քեշի վրա գրելու հասանելիությամբ։ Թարմացման սովորությունը, տասնհինգ. տասներեք թարմացում միաձուլված քսանչորս րոպեում, թոքենը սենյակում։

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
