# Dependabot bump objavio je crva. 22 paketa.

Published: 2026-09-17

Bot otvara zahtjev za povlačenje. Čovjek ga spaja 24 minute kasnije. 95 minuta nakon toga, crv je objavio 110 zlonamjernih verzija njegovih 22 npm paketa, pod njegovim imenom, s tokenom koji je pronašao u njegovom CI-u.

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

## Što ovaj video pokriva

- Bot, čovjek, crv
- Kako se to dogodilo, zašto je npm to dopustio, tko je kriv
- Vremenska crta: otrovana predmemorija
- 21:48 — Dependabot bump
- Zašto funkcionira

## Poglavlja

- 0:00 Bot, čovjek, crv
- 0:20 Kako se to dogodilo, zašto je npm to dopustio, tko je kriv
- 0:30 Vremenska crta: otrovana predmemorija
- 1:15 21:48 — Dependabot bump
- 1:50 Zašto funkcionira
- 2:20 git blame
- 2:45 Radijus udara
- 3:00 Presuda

## Prevedeni transkript

Prevedeno iz izvornog engleskog pripovijedanja. Dostupni zvuk i titlovi kontroliraju se putem YouTubea.

### Bot, čovjek, crv

0:00 Bot otvara zahtjev za povlačenje; čovjek ga spaja dvadeset i četiri minute kasnije. Devedeset i pet minuta poslije, crv je objavio sto deset verzija njegovih paketa, kao on. TanStackov postmortem ima uzvodne vremenske oznake, nizvodni održavateljev ima ostatak, a Hacker News mu daje jedanaest stotina bodova i ime: Mini Shai-Hulud. Kako se to događa, zašto npm to dopušta, tko je kriv.

### Kako se to dogodilo, zašto je npm to dopustio, tko je kriv

0:21 Ovo je The Daily Diff, postmortem. 11. svibnja, ujutro. Preimenovani fork otvara zahtjev za povlačenje prema TanStack Routeru. Zatvara se unutar sata, ali tijek rada za usporedbu već je pokrenuo svoj kod i

### Vremenska crta: otrovana predmemorija

0:33 spremio otrovanu predmemoriju pod ključem koji će koristiti tijek rada za objavu. Devetnaest dvadeset. Legitimno spajanje pokreće objavu. Predmemorija se vraća, binarna datoteka čita memoriju pokretača, podigne token za objavu i isporuči osamdeset i četiri verzije kroz četrdeset i dva paketa, s valjanim porijeklom. Testovi ne uspijevaju. Ipak se objavljuje. Devetnaest četrdeset i šest, istraživač StepSecuritya podnosi problem; do devet UTC sve je zastarjelo i obavijest je objavljena.

0:55 Zastarjelo ne znači da je nestalo: npm odbija poništiti objavu bilo čega s ovisnostima, pa ostaje instalabilno satima. Dvadeset i jedan četrdeset i osam. U projektu s devet zvjezdica za podatke o zrakoplovstvu, Dependabot otvara svoj rutinski zahtjev za povlačenje: bump grupe razvojnih ovisnosti, trinaest ažuriranja. Dva su otrovane TanStack verzije. Dvadeset i dva dvanaest: spojeno. Tijek rada za objavu pokreće npm C-I s tokenom u

### 21:48 — Dependabot bump

1:15 opsegu; skripta za pripremu ga čita, i u dvadeset i dva sedamnaest crv objavljuje kao on. Pet verzija svakog paketa do kojeg token dođe, čak i stari sporedni projekt: jedan klasični token za sve. Sto deset verzija u devedeset i pet minuta. Saznaje e-poštom, nakon ponoći. Zašto funkcionira. Jedan: npm install pokreće skripte životnog ciklusa nepoznatih osoba prema zadanim postavkama, a skripta za pripremu git ovisnosti se računa.

1:39 Dva: crv želi jednu stvar: token koji objavljuje bez drugog faktora. Zatim pita registar što još taj održavatelj posjeduje, i ponovno objavljuje sve to sa sobom unutra. Tri: ništa u lancu nije osoba.

### Zašto funkcionira

1:51 Bot predlaže, cjevovod instalira, a crv vraća uslugu: njegove dead-drop grane nazivaju se dependabot slash github-actions slash fremen. git blame. npm-ov instalacijski model, pedeset i pet posto: skripte se pokreću pri instalaciji, zastarjelo ostaje instalabilno, tokeni za zaobilaženje dvofaktorske autentifikacije postoje. TanStackov CI, dvadeset i pet: nepregledani tijek rada cilja zahtjeva za povlačenje koji pokreće kod forka s pravom pisanja u predmemoriju. Navika bumpanja, petnaest: trinaest ažuriranja spojeno u dvadeset i četiri minute, token u sobi.

2:17 Dependabot, pet: toliko mu se vjeruje da crv nosi njegovu uniformu.

### git blame

2:20 Radijus udara: četrdeset i dva TanStack paketa. Dvadeset i dva nizvodno, iz projekta s devet zvjezdica. Preko sto šezdeset u cijelom ekosustavu kad crv dođe do Mistrala. Svaka uzvodna verzija nosila je valjan potpis: izgrađena od strane službenog cjevovoda. Istina. Presuda, postmortem: SHIP IT. Oba održavatelja objavljuju postmorteme s vremenskim oznakama unutar jednog dana; unutar tri, nizvodni cjevovod instalira s ignore-scripts, dijeli build od objave, i odbacuje dugotrajni token.

### Radijus udara

2:47 npm-ove zadane postavke se nisu promijenile. Ponedjeljak: ignore-scripts na instalaciji, i token za objavu iz posla koji ga pokreće. Pošaljite mi incident o kojem još uvijek ne smijete pričati, u komentarima, ili na thedailydiff.dev. I to je diff za danas.

### Presuda

3:00 Ja sam Niko iz Axrisija. Spajajte odgovorno.

## Izvori

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