በዲፔንዳቦት የተፈጠረ ግጭት ትል አሳተመ። 22 ፓኬጆች።
አንድ ቦት የመጎተት ጥያቄ ይከፍታል። አንድ ሰው ከ24 ደቂቃ በኋላ ያዋህደዋል። ከዚያ ከ95 ደቂቃዎች በኋላ አንድ ትል በእሱ CI ውስጥ ባገኘው ቶከን ስሙን በመጠቀም የእሱን 22 npm ፓኬጆች 110 ተንኮል አዘል ስሪቶችን አሳትሟል።
አንድ ቦት የመጎተት ጥያቄ ይከፍታል። አንድ ሰው ከ24 ደቂቃ በኋላ ያዋህደዋል። ከዚያ ከ95 ደቂቃዎች በኋላ አንድ ትል በእሱ CI ውስጥ ባገኘው ቶከን ስሙን በመጠቀም የእሱን 22 npm ፓኬጆች 110 ተንኮል አዘል ስሪቶችን አሳትሟል።
ይህ ቪዲዮ ምን ይሸፍናል
- አንድ ቦት፣ አንድ ሰው፣ አንድ ትል
- እንዴት እንደተከሰተ፣ npm ለምን እንደፈቀደው፣ ተጠያቂው ማነው
- የጊዜ መስመር፡ የተበከለው መሸጎጫ
- 21:48 — የዲፔንዳቦት ግጭት
- ለምን ይሰራል
የተተረጎመ ግልባጭ
ከዋናው የእንግሊዝኛ ትረካ የተተረጎመ። የሚገኙ ኦዲዮ እና መግለጫ ጽሑፎች በYouTube ቁጥጥር ስር ናቸው።
አንድ ቦት፣ አንድ ሰው፣ አንድ ትል
0:00 አንድ ቦት የመጎተት ጥያቄ ይከፍታል፤ አንድ ሰው ከሃያ አራት ደቂቃ በኋላ ያዋህደዋል። ከዘጠና አምስት ደቂቃ በኋላ፣ አንድ ትል አሳትሟል አንድ መቶ አሥር የራሱ ስሪቶች ጥቅሎች፣ እርሱ ሆኖ። የታንስታክ (TanStack) የድህረ-ሞት ሪፖርት የመነሻ ጊዜ ማህተሞችን ይዟል፣ የታችኛው ተፋሰስ ጠባቂው የቀረውን ይዟል፣ እና ሃከር ኒውስ አንድ ሺህ አንድ መቶ ነጥቦችን እና ስም ይሰጠዋል፡ ሚኒ ሻይ-ሁሉድ። እንዴት እንደሚከሰት፣ npm ለምን እንደሚፈቅደው፣ ተጠያቂው ማነው።
እንዴት እንደተከሰተ፣ npm ለምን እንደፈቀደው፣ ተጠያቂው ማነው
0:21 ይህ The Daily Diff፣ የድህረ-ሞት ሪፖርት ነው። ግንቦት 11፣ ጥዋት። እንደገና የተሰየመ ፎርክ በTanStack Router ላይ የመጎተት ጥያቄ ይከፍታል። በአንድ ሰዓት ውስጥ ይዘጋል፣ ግን የመለኪያ የስራ ሂደት ኮዱን አውጥቶ
የጊዜ መስመር፡ የተበከለው መሸጎጫ
0:33 የተመረዘ መሸጎጫ በስሪት አወጣጥ የስራ ሂደት በሚጠቀምበት ቁልፍ ስር አስቀምጧል። አስራ ዘጠኝ ሃያ። ትክክለኛ ውህደት ስሪቱን ያስኬዳል። መሸጎጫው ይመለሳል፣ አንድ ሁለትዮሽ የሯጩን ማህደረ ትውስታ ያነባል፣ የህትመት ቶከኑን ያነሳል፣ እና ሰማንያ አራት ስሪቶችን በአርባ ሁለት ጥቅሎች ላይ ይልካል፣ በትክክለኛ ምንጭነት። ሙከራዎች ይወድቃሉ። ለማንኛውም ያትማል። አስራ ዘጠኝ አርባ ስድስት፣ አንድ የStepSecurity ተመራማሪ ችግሩን ያቀርባል፤ በዘጠኝ ዩቲሲ ሁሉም ነገር ከስራ ውጪ ሆኗል እና ምክሩ ወጥቷል።
0:55 ከስራ ውጪ ሆኗል እንጂ ጠፍቷል ማለት አይደለም፡ npm ጥገኞች ያሉባቸውን ነገሮች ሁሉ ለማተም እምቢ ይላል፣ ስለዚህ ለሰዓታት መጫን ይችላል። ሃያ አንድ አርባ ስምንት። ባለ ዘጠኝ ኮከብ የአቪዬሽን-ዳታ ፕሮጀክት ውስጥ፣ Dependabot የተለመደውን የመጎተት ጥያቄውን ይከፍታል፡ የልማት-ጥገኞች ቡድንን ያሳድጋል፣ አስራ ሶስት ዝማኔዎች። ሁለቱ የተመረዙ የTanStack ስሪቶች ናቸው። ሃያ ሁለት አስራ ሁለት፡ ተዋህዷል። የማተም የስራ ሂደት npm C-Iን ከቶከኑ ጋር
21:48 — የዲፔንዳቦት ግጭት
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። ሁለቱም ጠባቂዎች በ24 ሰዓት ውስጥ የጊዜ ማህተም ያላቸው የድህረ-ሞት ሪፖርቶችን ያቀርባሉ፤ በሶስት ውስጥ፣ የታችኛው ተፋሰስ የቧንቧ መስመር በignore-scripts ይጫናል፣ ግንባታን ከህትመት ይለያል፣ እና የረዥም ጊዜ ቶከኑን ይጥላል።
የፍንዳታ ራዲየስ
2:47 የ npm ነባሪዎች አልተንቀሳቀሱም። ሰኞ፡ ignore-scripts በመጫን ላይ፣ እና የማተም ቶከኑ ከስራው ውጪ ያካሂዳል። አሁንም እንድትናገር ያልተፈቀደልህን ክስተት ላክልኝ፣ በአስተያየቶች፣ ወይም በthedailydiff.dev ላይ። እና የዛሬው ልዩነት ያ ነው።
የፍርድ ውሳኔ
3:00 እኔ ከAxrisi ኒኮ ነኝ። በሃላፊነት ያዋህዱ።
ምንጮች
- TanStack postmortem (Tanner Linsley, May 11, refined May 15)tanstack.com
- TanStack "Hardening TanStack After the npm Compromise" (May 12)tanstack.com
- TanStack/router#7383 — the StepSecurity detection issuegithub.com
- Downstream incident post, @squawk/* (May 12)github.com
- Downstream hardening post (May 14)github.com
- The Dependabot PR #246 (opened 21:48 UTC, merged 22:12)github.com
- @tan_stack advisory post, 21:19 UTCx.com
- StepSecurity — worm internals, bypass_2fa search, Dependabot-style branch nameswww.stepsecurity.io
- Socketsocket.dev
- Aikido — "over 160 packages, including Mistral"www.aikido.dev
- Hacker News (1,097 points)news.ycombinator.com



