+− THE DAILY DIFFdev & AI news
SHIP IT

Dependabot-ის განახლებამ ჭიაყელა გაავრცელა. 22 პაკეტი.

ბოტი ხსნის pull request-ს.

ბოტი ხსნის pull request-ს. ადამიანი მას 24 წუთის შემდეგ აერთიანებს. ამის შემდეგ 95 წუთში, ჭიაყელამ გამოაქვეყნა მისი 22 npm პაკეტის 110 მავნე ვერსია, მისი სახელით, ტოკენით, რომელიც იპოვა მის CI-ში.

წაიკითხეთ წერილობითი გამოცემა (ინგლისური) ↗

რას მოიცავს ეს ვიდეო

  • ბოტი, ადამიანი, ჭიაყელა
  • როგორ მოხდა, რატომ დაუშვა npm-მა, ვის ეკისრება ბრალი
  • ქრონოლოგია: მოწამლული ქეში
  • 21:48 — Dependabot-ის განახლება
  • რატომ მუშაობს

ნათარგმნი ტრანსკრიპტი

ნათარგმნია ორიგინალური ინგლისური ნარატივიდან. ხელმისაწვდომი აუდიო და სუბტიტრები კონტროლდება YouTube-ის მიერ.

ბოტი, ადამიანი, ჭიაყელა

0:00 ბოტი ხსნის pull request-ს; ადამიანი მას ოცდაოთხი წუთის შემდეგ აერთიანებს. ოთხმოცდათხუთმეტი წუთის შემდეგ, ჭიაყელამ გამოაქვეყნა ას ათი ვერსია მისი პაკეტების, მის მიერ. TanStack-ის პოსტმოკვლევაში მოცემულია ზემოაღნიშნული დროის აღნიშვნები, ქვემოთა მომვლელის დანარჩენი აქვს, და Hacker News აძლევს მას ათას ას ქულას და სახელს: Mini Shai-Hulud. როგორ ხდება, რატომ უშვებს npm ამას, ვის ეკისრება ბრალი.

როგორ მოხდა, რატომ დაუშვა npm-მა, ვის ეკისრება ბრალი

0:21 ეს არის The Daily Diff, პოსტმოკვლევა. 11 მაისი, დილა. გადარქმეული ფორკი ხსნის pull request-ს TanStack Router-ის წინააღმდეგ. ის იხურება საათში, მაგრამ ბენჩმარკის სამუშაო ნაკადმა უკვე გაუშვა მისი კოდი და

ქრონოლოგია: მოწამლული ქეში

0:33 შეინახა მოწამლული ქეში იმ გასაღების ქვეშ, რომელსაც გამოშვების სამუშაო ნაკადი გამოიყენებს. ცხრამეტი-ოცი. ლეგიტიმური შერწყმა აწარმოებს გამოშვებას. ქეში ბრუნდება, ბინარული ფაილი კითხულობს გაშვების მეხსიერებას, იღებს გამოქვეყნების ტოკენს და აგზავნის ოთხმოცდაოთხ ვერსიას ორმოცდაორ პაკეტზე, ვალიდური წარმომავლობით. ტესტები ვერ ხერხდება. ის მაინც აქვეყნებს. ცხრამეტი ორმოცდაექვსი, StepSecurity-ის მკვლევარი წარადგენს პრობლემას; ცხრა საათისთვის UTC ყველაფერი გაუქმებულია და გაფრთხილებაც გამოქვეყნებულია.

0:55 გაუქმებული არ ნიშნავს წაშლილს: npm უარს ამბობს ნებისმიერი რამის გაუქმებაზე, რასაც დამოკიდებულებები აქვს, ასე რომ ის საათობით ხელმისაწვდომი რჩება ინსტალაციისთვის. ოცდაერთი ორმოცდარვა. ცხრავარსკვლავიან საავიაციო მონაცემთა პროექტში, Dependabot ხსნის თავის რუტინულ pull request-ს: dev-dependencies ჯგუფის განახლება, ცამეტი განახლება. ორი არის მოწამლული TanStack ვერსია. ოცდაორი-თორმეტი: გაერთიანდა. გამოქვეყნების სამუშაო ნაკადი აწარმოებს npm C-I-ს ტოკენით

21:48 — Dependabot-ის განახლება

1:15 ფარგლებში; მოსამზადებელი სკრიპტი კითხულობს მას, და ოცდაორი-ჩვიდმეტზე ჭიაყელა აქვეყნებს მის მიერ. ყოველი პაკეტის ხუთი ვერსია, რომელსაც ტოკენი აღწევს, თუნდაც ძველი გვერდითი პროექტი: ერთი კლასიკური ტოკენი ყველაფრისთვის. ას ათი ვერსია ოთხმოცდათხუთმეტ წუთში. ის ამის შესახებ ელ. ფოსტით გაიგებს, შუაღამის შემდეგ. რატომ მუშაობს. ერთი: npm install ნაგულისხმევად აწარმოებს უცნობების სასიცოცხლო ციკლის სკრიპტებს, და git დამოკიდებულების მოსამზადებელი სკრიპტი ითვლება.

1:39 ორი: ჭიაყელას ერთი რამ უნდა: ტოკენი, რომელიც აქვეყნებს მეორე ფაქტორის გარეშე. შემდეგ ის ეკითხება რეესტრს, რა სხვა რამ აქვს ამ მომვლელს, და ხელახლა აქვეყნებს ყველაფერს თავისთავად შიგნით. სამი: ჯაჭვში არაფერია ადამიანი.

რატომ მუშაობს

1:51 ბოტი გვთავაზობს, კონვეიერი აინსტალირებს, და ჭიაყელა სამაგიეროს უბრუნებს: მისი dead-drop ტოტებს ჰქვია dependabot slash github-actions slash fremen. git blame. npm-ის ინსტალაციის მოდელი, ორმოცდათხუთმეტი პროცენტი: სკრიპტები მუშაობს ინსტალაციისას, გაუქმებული რჩება ინსტალაციისთვის, ორფაქტორიანი გვერდის ავლის ტოკენები არსებობს. TanStack-ის CI, ოცდახუთი: არააუდიტირებული pull request target სამუშაო ნაკადი, რომელიც აწარმოებს ფორკის კოდს, ქეშზე ჩაწერის ნებართვით. განახლების ჩვევა, თხუთმეტი: ცამეტი განახლება გაერთიანდა ოცდაოთხ წუთში, ტოკენი ოთახში.

2:17 Dependabot, ხუთი: იმდენად სანდო, რომ ჭიაყელა მის უნიფორმას ატარებს.

git blame

2:20 აფეთქების რადიუსი: ორმოცდაორი TanStack პაკეტი. ოცდაორი ქვემოთა, ცხრავარსკვლავიანი პროექტიდან. ას სამოცზე მეტი ეკოსისტემის მასშტაბით, როგორც კი ჭიაყელა Mistral-ს მიაღწევს. ყოველი ზედა ვერსია ატარებდა ვალიდურ ხელმოწერას: აშენებული ოფიციალური კონვეიერის მიერ. მართალია. ვერდიქტი, პოსტმოკვლევა: SHIP IT. ორივე მომვლელი აქვეყნებს დროის აღნიშვნებით პოსტმოკვლევებს ერთ დღეში; სამში, ქვემოთა კონვეიერი აინსტალირებს ignore-scripts-ით, ყოფს აშენებას გამოქვეყნებისგან და აგდებს ხანგრძლივ ტოკენს.

აფეთქების რადიუსი

2:47 npm-ის ნაგულისხმევი პარამეტრები არ შეცვლილა. ორშაბათი: ignore-scripts ინსტალაციისას, და გამოქვეყნების ტოკენი იმ სამუშაოდან, რომელიც მას აწარმოებს. გამომიგზავნეთ ინციდენტი, რომელზეც ჯერ კიდევ არ გაქვთ საუბრის უფლება, კომენტარებში, ან thedailydiff.dev-ზე. და ეს არის დღევანდელი განსხვავება.

ვერდიქტი

3:00 მე ვარ ნიკო Axrisi-დან. გააერთიანეთ პასუხისმგებლობით.

წყაროები

  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

მსგავსი ვიდეოები

postmortem · ka · 13 სექ. 2026

თერთმეტმა JavaScript ხაზმა გააფუჭა ინტერნეტი. ერთი გაუქმება.

2016 წლის 22 მარტი, 21:30 UTC: დეველოპერმა წაშალა მისი 273-ვე npm პაკეტი მას შემდეგ, რაც npm-მა პაკეტის სახელი "kik" გადასცა Kik-ს, შეტყობინებების აპლიკაციას, რომლის საპატენტო აგენტმა პირობა დადო „ადვ

2:52 ↗
postmortem · ka · 15 სექ. 2026

Rust-ის კრეტმა მავნე პროგრამა გაუშვა კომპილაციის დროს. 86 წუთი.

ოთხმაგი მაკრო Rust-ის კრეტმა 260 მილიონი ჩამოტვირთვით დაამატა ერთი დამოკიდებულება, და `cargo build`-მა გაუშვა უცნობის ბინარი თქვენს მანქანაზე. 2026 წლის 20 აგვისტო: arrayref 0.3.10 დაეშვა crates.io-ზე

3:09 ↗
postmortem · ka · 25 სექ. 2026

ერთმილიწამიანმა ხარვეზმა შეაჩერა გაერთიანებული სამეფოს საჰაერო მოძრაობა. ექვსი საათი.

სამშაბათს, 8 სექტემბერს, 10:00 საათზე, NATS-ის ეროვნული საჰაერო სივრცის სისტემაში (NAS) squawk-კოდის ერთ რუტინულ მოთხოვნას აწყვეტინებს უფრო მაღალი პრიორიტეტის შეტყობინება, სანამ ის მნიშვნელობის განახლ

3:06 ↗
postmortem · ka · 22 სექ. 2026

გადატვირთვამ Telstra 2006 წელში დააბრუნა. ცხრა მილიონი ტელეფონი.

მელბურნელმა ინჟინერმა დილის 2:50 საათზე ჩართო ქრონომეტრაჟის შასი, და საუზმისთვის ავსტრალიის უდიდესმა მობილურმა ქსელმა დაასკვნა, რომ ეს იყო 2006 წლის ნოემბერი. 2026 წლის 8 ივლისი: Telstra-ს NTP შასიში

3:15 ↗