+− THE DAILY DIFFdev & AI news
SHIP IT

Dependabot uppfærsla birti orm. 22 pakkar.

Vélmenni opnar pull request.

Vélmenni opnar pull request. Manneskja sameinar það 24 mínútum síðar. 95 mínútum eftir það hefur ormur birt 110 skaðlegar útgáfur af 22 npm pakka hans, undir nafni hans, með tóka sem hann fann í CI hans.

Lestu skriflegu útgáfuna (enska) ↗

Það sem þetta myndband fjallar um

  • Vélmenni, manneskja, ormur
  • Hvernig það gerðist, hvers vegna npm leyfði það, hver fær sökina
  • Tímalína: eitraði skyndiminnið
  • 21:48 — Dependabot uppfærslan
  • Hvers vegna það virkar

Þýtt afrit

Þýtt úr upprunalegri enskri frásögn. Tiltækt hljóð og textar eru stjórnaðir af YouTube.

Vélmenni, manneskja, ormur

0:00 Vélmenni opnar pull request; manneskja sameinar það tuttugu og fjórum mínútum síðar. Níutíu og fimm mínútum síðar, hefur ormur birt hundrað og tíu útgáfur af hans pökkum, sem hann. Postmortem TanStack hefur upprunalegu tímastimplana, viðhaldsaðilinn neðar í flæðinu hefur restina, og Hacker News gefur því ellefu hundruð stig og nafn: Mini Shai-Hulud. Hvernig það gerist, hvers vegna npm leyfir það, hver fær sökina.

Hvernig það gerðist, hvers vegna npm leyfði það, hver fær sökina

0:21 Þetta er The Daily Diff, postmortem. 11. maí, morgunn. Endurnefndur gaffall opnar pull request gegn TanStack Router. Það lokar innan klukkustundar, en viðmiðunarferli hefur þegar keyrt kóðann sinn og

Tímalína: eitraði skyndiminnið

0:33 vistað eitrað skyndiminni undir lyklinum sem útgáfuferlið mun nota. Nítján tuttugu. Lögmæt sameining keyrir útgáfuna. Skyndiminnið kemur aftur, tvíundarforrit les minni keyrslunnar, lyftir útgefanda tókanum og sendir áttatíu og fjórar útgáfur yfir fjörutíu og tvö pakka, með gildum uppruna. Prófanir mistakast. Það birtir samt. Nítján fjörutíu og sex, rannsakandi StepSecurity skráir málið; fyrir níu UTC er allt úrelt og ráðgjöfin er komin út.

0:55 Úrelt er ekki horfið: npm neitar að afbirta neitt með háðum þáttum, svo það helst uppsetnanlegt í klukkutíma. Tuttugu og einn fjörutíu og átta. Í níu stjörnu flugmálaverkefni, Dependabot opnar venjulegt pull request: uppfæra dev-dependencies hópinn, þrettán uppfærslur. Tvær eru eitraðar TanStack útgáfur. Tuttugu og tvö og tólf: sameinað. Útgáfuferlið keyrir npm C-I með tókanum í

21:48 — Dependabot uppfærslan

1:15 sviði; undirbúningsskrift les það, og klukkan tuttugu og tvö og sautján birtir ormurinn sem hann. Fimm útgáfur af hverjum pakka sem tókað nær til, jafnvel gamalt hliðarverkefni: einn klassískur tóki fyrir allt. Hundrað og tíu útgáfur á níutíu og fimm mínútum. Hann kemst að því með tölvupósti, eftir miðnætti. Hvers vegna það virkar. Eitt: npm install keyrir líftímaskriftir ókunnugra sjálfgefið, og undirbúningsskrift git háðs telst.

1:39 Tvo: ormurinn vill eitt: tóka sem birtir án annars þáttar. Síðan spyr hann skrásetninguna hvað annars sá viðhaldsaðili eigi, og endurbirtir allt með sjálfum sér inni. Þrjú: ekkert í keðjunni er manneskja.

Hvers vegna það virkar

1:51 Vélmenni leggur til, pípurinn setur upp, og ormurinn endurgeldur greiðann: hans dead-drop greinar eru nefndar dependabot slash github-actions slash fremen. git blame. Uppsetningarlíkan npm, fimmtíu og fimm prósent: skriftir keyra við uppsetningu, úrelt helst uppsetnanlegt, tveggja-þátta-framhjáhlaups tokens eru til. CI TanStack, tuttugu og fimm: óskoðað pull request markferli sem keyrir gaffalkóða með skrifréttindum á skyndiminnið. Uppfærsluvenjan, fimmtán: þrettán uppfærslur sameinaðar á tuttugu og fjórum mínútum, tóki í herberginu.

2:17 Dependabot, fimm: svo traustur að ormurinn klæðist einkennisbúningi hans.

git blame

2:20 Útbreiðsla: fjörutíu og tveir TanStack pakkar. Tuttugu og tveir neðar í flæðinu, frá verkefni með níu stjörnur. Yfir hundrað og sextíu á vistkerfisskala þegar ormurinn nær Mistral. Hver upprunaleg útgáfa bar gilda undirskrift: byggð af opinberu pípunni. Satt. Dómur, postmortem: SHIP IT. Báðir viðhaldsaðilar senda tímasett postmortem innan dags; innan þriggja, pípurinn neðar í flæðinu setur upp með ignore-scripts, skiptir byggingu frá útgáfu, og sleppir langtíma tókanum.

Útbreiðsla

2:47 Sjálfgefnar stillingar npm hafa ekki færst. Mánudagur: ignore-scripts við uppsetningu, og útgáfu tókanum út úr verkinu sem keyrir það. Sendið mér atvikið sem ykkur er enn ekki leyft að tala um, í athugasemdum, eða á thedailydiff.dev. Og það er The Daily Diff í dag.

Dómur

3:00 Ég er Niko frá Axrisi. Sameinið á ábyrgan hátt.

Heimildir

  1. TanStack postmortem (Tanner Linsley, May 11, refined May 15)tanstack.com
  2. TanStack "Hardening TanStack After the npm Compromise" (May 12)tanstack.com
  3. TanStack/router#7383 — the StepSecurity detection issuegithub.com
  4. Downstream incident post, @squawk/* (May 12)github.com
  5. Downstream hardening post (May 14)github.com
  6. The Dependabot PR #246 (opened 21:48 UTC, merged 22:12)github.com
  7. @tan_stack advisory post, 21:19 UTCx.com
  8. StepSecurity — worm internals, bypass_2fa search, Dependabot-style branch nameswww.stepsecurity.io
  9. Socketsocket.dev
  10. Aikido — "over 160 packages, including Mistral"www.aikido.dev
  11. Hacker News (1,097 points)news.ycombinator.com

Tengd myndbönd