+− THE DAILY DIFFdev & AI news
SHIP IT

একটি ডিপেন্ডাবট বাম্প একটি কৃমি প্রকাশ করেছে। ২২টি প্যাকেজ।

একটি বট একটি পুল রিকোয়েস্ট খোলে।

একটি বট একটি পুল রিকোয়েস্ট খোলে। একজন মানুষ এটি ২৪ মিনিট পরে মার্জ করে। তার ৯৫ মিনিট পরে, একটি কৃমি তার CI-তে পাওয়া একটি টোকেন ব্যবহার করে তার ২২টি npm প্যাকেজের ১১০টি দূষিত সংস্করণ তার নামে প্রকাশ করেছে।

লিখিত সংস্করণ পড়ুন (ইংরেজি) ↗

এই ভিডিওতে যা আছে

  • একটি বট, একজন মানুষ, একটি কৃমি
  • কীভাবে এটি ঘটলো, কেন npm এটি অনুমতি দিল, কে দায়ী
  • সময়রেখা: বিষাক্ত ক্যাশে
  • ২১:৪৮ — ডিপেন্ডাবট বাম্প
  • কেন এটি কাজ করে

অনুবাদিত প্রতিলিপি

মূল ইংরেজি বর্ণনা থেকে অনূদিত। উপলব্ধ অডিও এবং ক্যাপশন YouTube দ্বারা নিয়ন্ত্রিত।

একটি বট, একজন মানুষ, একটি কৃমি

0:00 একটি বট একটি পুল রিকোয়েস্ট খোলে; একজন মানুষ চব্বিশ মিনিট পরে এটি মার্জ করে। পঁচানব্বই মিনিট পর, একটি কৃমি প্রকাশ করেছে তার একশ দশটি সংস্করণ প্যাকেজ, তার নিজের নামে। TanStack-এর পোস্টমর্টেমে আপস্ট্রিম টাইমস্ট্যাম্প আছে, ডাউনস্ট্রিম রক্ষণাবেক্ষণকারীর বাকিটা আছে, এবং হ্যাকার নিউজ এটিকে এগারোশ পয়েন্ট এবং একটি নাম দিয়েছে: Mini Shai-Hulud। কীভাবে এটি ঘটে, কেন npm এটি অনুমতি দেয়, কে দায়ী।

কীভাবে এটি ঘটলো, কেন npm এটি অনুমতি দিল, কে দায়ী

0:21 এটি The Daily Diff, পোস্টমর্টেম। ১১ই মে, সকাল। একটি পুনঃনামকৃত ফর্ক TanStack Router-এর বিরুদ্ধে একটি পুল রিকোয়েস্ট খোলে। এটি এক ঘন্টার মধ্যে বন্ধ হয়ে যায়, কিন্তু একটি বেঞ্চমার্ক ওয়ার্কফ্লো ইতিমধ্যে তার কোড চালিয়েছে এবং

সময়রেখা: বিষাক্ত ক্যাশে

0:33 একটি বিষাক্ত ক্যাশে সংরক্ষণ করেছে সেই কী-এর অধীনে যা রিলিজ ওয়ার্কফ্লো ব্যবহার করবে। উনিশ-কুড়ি। একটি বৈধ মার্জ রিলিজ চালায়। ক্যাশে ফিরে আসে, একটি বাইনারি রানারের মেমরি পড়ে, পাবলিশ টোকেন তুলে নেয়, এবং বিয়াল্লিশটি প্যাকেজের আশি-চারটি সংস্করণ প্রকাশ করে, বৈধ প্রমাণপত্র সহ। পরীক্ষা ব্যর্থ হয়। এটি তবুও প্রকাশিত হয়। উনিশ ছেচল্লিশ, একজন StepSecurity গবেষক ইস্যুটি ফাইল করেন; নয়টা UTC-এর মধ্যে সবকিছু অপ্রচলিত হয়ে যায় এবং পরামর্শ প্রকাশিত হয়।

0:55 অপ্রচলিত মানে চলে যাওয়া নয়: npm নির্ভরশীল কিছু অপ্রকাশিত করতে অস্বীকার করে, তাই এটি কয়েক ঘন্টা ইনস্টলযোগ্য থাকে। একুশ আটচল্লিশ। একটি নয়-স্টার এভিয়েশন-ডেটা প্রকল্পে, Dependabot তার রুটিন পুল রিকোয়েস্ট খোলে: dev-dependencies গ্রুপ আপডেট করা, তেরোটি আপডেট। দুটি বিষাক্ত TanStack সংস্করণ। বাইশ-বারো: মার্জ করা হয়েছে। পাবলিশ ওয়ার্কফ্লো স্কোপে থাকা টোকেন দিয়ে npm C-I চালায়;

২১:৪৮ — ডিপেন্ডাবট বাম্প

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। উভয় রক্ষণাবেক্ষণকারী এক দিনের মধ্যে টাইমস্ট্যাম্প সহ পোস্টমর্টেম পোস্ট করেন; তিন দিনের মধ্যে, ডাউনস্ট্রিম পাইপলাইন ignore-scripts সহ ইনস্টল করে, বিল্ড থেকে পাবলিশ আলাদা করে, এবং দীর্ঘস্থায়ী টোকেন বাদ দেয়।

বিস্ফোরণ ব্যাসার্ধ

2:47 npm-এর ডিফল্টগুলি স্থানান্তরিত হয়নি। সোমবার: ইনস্টল করার সময় ignore-scripts, এবং সেই জব থেকে পাবলিশ টোকেন বাদ দেওয়া যা এটি চালায়। আপনি যে ঘটনাটি নিয়ে এখনও কথা বলতে পারছেন না, সেটি আমাকে পাঠান, মন্তব্যে, অথবা thedailydiff.dev-এ। এবং আজকের জন্য এটাই পার্থক্য।

রায়

3:00 আমি Axrisi থেকে Niko। দায়িত্ব সহকারে মার্জ করুন।

উৎস

  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 · bn · ১৩ সেপ, ২০২৬

জাভাস্ক্রিপ্টের এগারোটি লাইন ইন্টারনেট ভেঙে দিয়েছে। একটি আনপাবলিশ।

২২ মার্চ, ২০১৬, ২১:৩০ ইউটিসি: একজন ডেভেলপার তার ২৭৩টি npm প্যাকেজ আনপাবলিশ করেন যখন npm "kik" প্যাকেজের নামটি Kik, মেসেজিং অ্যাপকে হস্তান্তর করে, যার পেটেন্ট এজেন্ট "আপনার দরজায় আইনজীবী ধাক্কা দিচ্ছে

2:52 ↗
postmortem · bn · ১৫ সেপ, ২০২৬

একটি রাস্ট ক্রেট কম্পাইল-টাইমে ম্যালওয়্যার চালায়। ৮৬ মিনিট।

২৬০ মিলিয়ন ডাউনলোড সহ একটি চার-ম্যাক্রো রাস্ট ক্রেট একটি ডিপেনডেন্সি যোগ করে, এবং `cargo build` আপনার মেশিনে একটি অপরিচিত বাইনারি চালায়। ২০ আগস্ট, ২০২৬: arrayref 0.3.10 crates.io-তে আসে proc-macro1-

3:09 ↗
postmortem · bn · ২৫ সেপ, ২০২৬

এক-মিলিসেকেন্ডের একটি ত্রুটি যুক্তরাজ্যের বিমান চলাচল বন্ধ করে দিয়েছে। ছয় ঘণ্টা ধরে।

মঙ্গলবার, ৮ সেপ্টেম্বর সকাল ১০:০০ টায়, NATS-এর ন্যাশনাল এয়ারস্পেস সিস্টেম (NAS)-এর মধ্যে একটি রুটিন স্কোয়াক-কোড অনুরোধ একটি উচ্চ-অগ্রাধিকার বার্তার দ্বারা বাধাগ্রস্ত হয় যখন এটি একটি মান আপডেট করার

3:06 ↗
postmortem · bn · ২২ সেপ, ২০২৬

একটি রিবুট টেলস্ট্রাকে ২০০৬ সালে ফিরিয়ে নিয়ে যায়। নব্বই লক্ষ ফোন।

মেলবোর্নের একজন প্রকৌশলী ভোর ২:৫০ টায় একটি টাইমিং চ্যাসিস পুনরায় চালু করেন এবং সকালের নাস্তার সময় অস্ট্রেলিয়ার বৃহত্তম মোবাইল নেটওয়ার্ক একমত হয় যে এটি ২০০৬ সালের নভেম্বর মাস। ৮ জুলাই, ২০২৬: টেলস

3:15 ↗