# Dependabot atnaujinimas paskelbė kirminą. 22 paketai.

Published: 2026-09-17

Botas atidaro priėmimo užklausą. Žmogus ją sujungia po 24 minučių. Po 95 minučių kirminas paskelbė 110 kenkėjiškų savo 22 npm paketų versijų, jo vardu, su žetonu, kurį rado jo CI.

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

## Kas aptariama šiame vaizdo įraše

- Botas, žmogus, kirminas
- Kaip tai nutiko, kodėl npm tai leido, kas kaltas
- Laiko juosta: užnuodyta talpykla
- 21:48 — Dependabot atnaujinimas
- Kodėl tai veikia

## Skyriai

- 0:00 Botas, žmogus, kirminas
- 0:20 Kaip tai nutiko, kodėl npm tai leido, kas kaltas
- 0:30 Laiko juosta: užnuodyta talpykla
- 1:15 21:48 — Dependabot atnaujinimas
- 1:50 Kodėl tai veikia
- 2:20 git kaltinimas
- 2:45 Poveikio spindulys
- 3:00 Nuosprendis

## Išverstas transkriptas

Išversta iš originalo anglų kalbos. Galimas garso ir subtitrų valdymas per YouTube.

### Botas, žmogus, kirminas

0:00 Botas atidaro priėmimo užklausą; žmogus ją sujungia po dvidešimt keturių minučių. Po devyniasdešimt penkių minučių kirminas paskelbė šimtą dešimt jo versijų paketų, kaip jis. „TanStack“ pomirtinė analizė turi pirminius laiko žymes, tolesnio palaikytojo turi likusius, o „Hacker News“ suteikia jam vienuolika šimtų taškų ir pavadinimą: Mini Shai-Hulud. Kaip tai nutinka, kodėl npm tai leidžia, kas kaltas.

### Kaip tai nutiko, kodėl npm tai leido, kas kaltas

0:21 Tai „The Daily Diff“, pomirtinė analizė. Gegužės 11 d., rytas. Pervadintas atšaka atidaro priėmimo užklausą prieš „TanStack Router“. Ji užsidaro per valandą, tačiau etaloninis darbo srautas jau paleido savo kodą ir

### Laiko juosta: užnuodyta talpykla

0:33 išsaugojo užnuodytą talpyklą po raktu, kurį naudos išleidimo darbo srautas. Devyniolika-dvidešimt. Teisėtas sujungimas paleidžia išleidimą. Talpykla grįžta, dvejetainis failas nuskaito vykdytojo atmintį, paima publikavimo žetoną ir išsiunčia aštuoniasdešimt keturias versijas per keturiasdešimt du paketus, su galiojančia kilme. Testai nepavyksta. Jis vis tiek publikuoja. Devyniolika keturiasdešimt šeši, „StepSecurity“ tyrėjas pateikia problemą; iki devynių UTC viskas yra pasenę ir patarimas yra išleistas.

0:55 Pasenęs nereiškia, kad jo nebėra: npm atsisako atšaukti bet ką su priklausomybėmis, todėl jis lieka įdiegiamas valandas. Dvidešimt vienas keturiasdešimt aštuoni. Devynių žvaigždučių aviacijos duomenų projekte, Dependabot atidaro savo įprastą priėmimo užklausą: atnaujinti kūrimo priklausomybių grupę, trylika atnaujinimų. Du yra užnuodytos „TanStack“ versijos. Dvidešimt du-dvylika: sujungta. Publikavimo darbo srautas paleidžia npm C-I su žetonu

### 21:48 — Dependabot atnaujinimas

1:15 apimtyje; parengimo scenarijus jį nuskaito, o dvidešimt du-septyniolika kirminas publikuoja kaip jis. Penkios kiekvieno paketo, kurį pasiekia žetonas, versijos, net senas šalutinis projektas: vienas klasikinis žetonas viskam. Šimtas dešimt versijų per devyniasdešimt penkias minutes. Jis sužino paštu, po vidurnakčio. Kodėl tai veikia. Vienas: npm diegimas paleidžia nepažįstamų žmonių gyvavimo ciklo scenarijus pagal numatytuosius nustatymus, ir git priklausomybės parengimo scenarijus skaitomas.

1:39 Du: kirminas nori vieno: žetono, kuris publikuoja be antrojo faktoriaus. Tada jis klausia registro, kas dar priklauso tam prižiūrėtojui, ir viską iš naujo publikuoja su savimi viduje. Trys: niekas grandinėje nėra asmuo.

### Kodėl tai veikia

1:51 Botas siūlo, vamzdynas diegia, o kirminas grąžina paslaugą: jo mirtinų atšakų pavadinimai yra dependabot slash github-actions slash fremen. git kaltinimas. npm diegimo modelis, penkiasdešimt penki procentai: scenarijai paleidžiami diegiant, pasenęs lieka įdiegiamas, egzistuoja dviejų faktorių apėjimo žetonai. „TanStack“ CI, dvidešimt penki: nepatikrintas priėmimo užklausos tikslinis darbo srautas, paleidžiantis šakutės kodas su rašymo prieiga prie talpyklos. Atnaujinimo įprotis, penkiolika: trylika atnaujinimų sujungta per dvidešimt keturias minutes, žetonas kambaryje.

2:17 Dependabot, penki: taip pasitikima, kad kirminas dėvi jo uniformą.

### git kaltinimas

2:20 Poveikio spindulys: keturiasdešimt du „TanStack“ paketai. Dvidešimt du pasroviui, iš projekto su devyniomis žvaigždėmis. Daugiau nei šimtas šešiasdešimt visos ekosistemos, kai kirminas pasiekia Mistral. Kiekviena pirminė versija turėjo galiojantį parašą: sukurta oficialios vamzdyno. Tiesa. Nuosprendis, pomirtinė analizė: SHIP IT. Abu prižiūrėtojai per dieną paskelbia laiko žymėmis pažymėtas pomirtines analizes; per tris, pasrovinis vamzdynas įdiegia su ignore-scripts, atskiria kūrimą nuo publikavimo ir atsisako ilgalaikio žetono.

### Poveikio spindulys

2:47 npm numatytieji nustatymai nepasikeitė. Pirmadienis: ignore-scripts diegiant, ir publikavimo žetonas iš darbo, kuris jį paleidžia. Atsiųskite man incidentą, apie kurį jums vis dar neleidžiama kalbėti, komentaruose arba thedailydiff.dev. Ir tai yra šiandienos skirtumas.

### Nuosprendis

3:00 Aš esu Niko iš Axrisi. Sujunkite atsakingai.

## Šaltiniai

- [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
