رسم توضيحي تجريدي مُولَّد على خلفية كُحلية داكنة: سلسلة من كُتل شفافة متشابكة تمتد من اليسار إلى اليمين، وكل كتلة منها مختومة بخاتم صغير متوهج بلون سماوي. وقرب منتصف السلسلة، استُبدلت إحدى الكتل بكتلة داكنة تحمل خاتمًا سماويًا مطابقًا، وتستمر السلسلة بعدها دون انقطاع. خيوط كهرمانية رفيعة تتفرع نزولًا من تلك الكتلة الداكنة نحو صف صغير من الألواح الطرفية الداكنة عند أسفل الإطار. لا تظهر أي نصوص أو أرقام أو أشخاص أو علامات تجارية أو شعارات مؤسسات. وشعار OrcaRouter مركَّب في الزاوية السفلية اليمنى.
AI Safety Incidents

ChainDrop: إثبات مصدر صالح في أكثر من 400 حزمة npm، وخطافات Claude Code التي لا تحتاج إلى npm install

الكاتب

Elias Hawthorne

تاريخ النشر

أحدث النماذج · 20عرض جميع النماذج →
المعايير: Artificial Analysis · يُحدَّث يوميًا
العودة إلى جميع المقالات

في 4 أغسطس 2026 استولى مهاجمون على حساب GitHub الكائن خلف keyv، وهي مكتبة تخزين مؤقت تقول Elastic Security Labs إنها نُزّلت أكثر من 600 مليون مرة في الشهر السابق. ويسجل كل من Wiz Research وOrca Security أن ملفات خبيثة دُفعت مباشرة إلى الفرع main في keyv، وأن سير عمل GitHub Actions الخاص بالمشروع نفسه بنى الإصدار المسموم ونشره بعد ذلك — فوصل إلى npm وهو يحمل منشأً صالحًا، وهو الإثبات الذي تستخدمه أدوات سلسلة التوريد لتحديد ما إذا كانت الحزمة موثوقة. ودودة تنتشر ذاتيًا يسميها الباحثون ChainDrop ثم استخدمت رموز npm المسروقة لتكرار الحيلة عبر حزم مشرفين آخرين: أحصت Elastic أكثر من 400 حزمة فريدة بحلول 6 أغسطس، ووصفت Microsoft Threat Intelligence الحملة نفسها في 4 أغسطس، وأحصت وكالة الأمن السيبراني في سنغافورة أكثر من 1,300 نسخة حزمة مخترقة بمجموع تنزيلات شهرية يبلغ 2 مليار. ويصف كل من Elastic وMicrosoft خطافات يُعاد تشغيلها عند فتح مستودع في Claude Code أو Visual Studio Code. وتوجد قائمة المصادر الكاملة للسجل ودرجة الخطورة وتقييم الثقة في أرشيف حوادث الذكاء الاصطناعي، إلى جانب مدخلات سلسلة التوريد الأخرى الخاصة بـ npm وأدوات المطورين المسجلة حوله.

كيف وقّع مسار إصدار شرعي على اختراقه الذاتي

تعيد Wiz Research بناء الدقائق الأولى: بدءًا من 09:00 UTC في 4 أغسطس، استخدم المهاجم هوية مخترقة لإدخال حمولات استمرارية IDE إلى مستودع keyv، ثم نشر بعد ذلك بوقت قصير نسخة جديدة من keyv تحتوي على الحمولة. وتسمّي Wiz الطرف المخترق حساب مشرف على GitHub، وتقول إن حزمًا متعددة في منظومة keyv وcacheable قد تأثرت لاحقًا.

يكشف تقرير الاستجابة السريعة من Orca Security تفاصيل أكثر تحديدًا عن مسار التوقيع. ويذكر أن المهاجم دفع ملفين خبيثين — setup.mjs وMath_Symbol.js — مباشرةً إلى الفرع الرئيسي وأصدر فورًا إصدارات جديدة. ولأن تلك الإصدارات بُنيت عبر سير عمل GitHub Actions الخاص بالحساب المخترق، نُشرت النسخ المسمومة على npm مع توقيعات منشأ صالحة، متجاوزةً فحوصات السلامة القياسية لسلسلة التوريد. ويصل فريق Zscaler ThreatLabz، وهو فريق بحثي مستقل ليس ضمن المصادر المذكورة في السجل، إلى النتيجة نفسها ويضع لها مستوى: النسخة الخبيثة keyv 6.0.0 كانت تحمل منشأً صالحًا وفق SLSA Build Level 3لأن المهاجم كان يتحكم في المستودع المصدر. ويسجل BleepingComputer، الذي أبلغ عن الحملة في اليوم نفسه، الآلية نفسها — ملفات خبيثة تُدفع مباشرةً إلى الفروع الرئيسية للمشاريع، وتوليد إصدارات جديدة، ومنشأ صالح لأن عمليات البناء جرت عبر سير عمل GitHub Actions الشرعية.

يضيف تحليل Microsoft تفصيلاً يبدو وكأنه تناقض، لكنه ليس كذلك. في مرحلة انتشار الدودة، وجدت Microsoft Threat Intelligence أن العديد من الإصدارات الخبيثة لم تكن لها أي التزام مطابق في الشيفرة المصدرية، أو طلب سحب، أو وسم، أو إصدار شرعي، مما أشار إلى أن المهاجمين عدّلوا حِزم tarball الخاصة بالحزم ونشروها مباشرة بدلاً من اختراق كل مستودع مصادر عام. وعند قراءة المصادر مجتمعة، فإنها تصف نظامين للتوقيع داخل حملة واحدة: فقد مرّت إصدارات keyv الأولى عبر خط CI الحقيقي للضحية وتحمل شهادات تشهد لها، بينما جُمّعت إصدارات الدودة اللاحقة ونُشرت إلى حد كبير باستخدام رموز سجل مسروقة، من دون ترك أي أثر في المصادر على الإطلاق. وملاحظة Microsoft نفسها هي أن نمط tarball المباشر يفسّر سبب ظهور الإصدارات الخبيثة غالباً كزيادة عادية في رقم إصدار patch دون التزامات مصدرية مقابلة أو طلبات سحب.

يطرح Zscaler الدرس المزعج بوضوح: فالمصدرية تتحقق من صحة عملية البناء، لا من هوية الحساب ولا من سلامة نظام CI الذي يشغّلها. كما يقرّ بوجود فجوة تهم أي شخص يعيد تركيب الحادثة — إذ كانت آلية الاستيلاء على الحساب الدقيقة التي استخدمها المهاجم غير معروفة وقت تحليله.

ما الذي يُنفَّذ عند npm install: preinstall، وBun 1.3.13، ومُجمِّع بـ300 نمط

تصف Elastic Security Labs المشغّل بأنه preinstall في package.json، وهو يستغل ميزة شرعية في npm تقوم بتشغيل أوامر عشوائية قبل اكتمال تثبيت الحزمة، من دون الحاجة إلى أي تفاعل إضافي من الضحية. ويشغّل هذا الخطاف setup.mjs، وهو يتحقق مما إذا كانت بيئة تشغيل Bun JavaScript موجودة بالفعل. وإذا لم تكن، تكتشف أداة الإسقاط منصة الجهاز وبنية معماريةه، وتنزّل Bun v1.3.13 من صفحة الإصدار الرسمية، وتستخرجه، وتستخدمه لتنفيذ الحمولة، ثم تحذف الدليل المؤقت لتغطية آثارها. وحددت Wiz بشكل مستقل وكيل المستخدم Bun/1.3.13 الذي يجري الاستدعاءات الخبيثة. أداة الإسقاط عابرة للمنصات، وتستهدف Linux وmacOS وWindows.

الحمولة النافعة مشوّشة بشدة، وتختلف المصادر قليلاً بشأن حجمها: تُقدّرها Elastic بـ711 كيلوبايت، في حين تُقدّرها Orca Security بـ728 كيلوبايت. وهي تستخدم تقنية تسطيح تدفق التحكم ومخطط ترميز السلاسل النصية Base91، وتحمل سلاسل نصية مستوحاة من Dune — laza وkanly وghola وmentat وlasgun وsietch وfedaykin وtleilaxu وsandworm وsardaukar وornithopter وnavigator — وتشير Elastic إلى وجود أوجه تشابه بينها وبين حملات Shai-Hulud السابقة.

يضيف الوصف السلوكي من Microsoft تفصيلين جديرين بالاهتمام. تفحص الحمولة بيئتها أولًا وتتوقف على الأنظمة ذات اللغة الروسية، وتتجنب النسخ المكررة، وتبدأ نسخة خلفية منفصلة على محطات عمل المطورين؛ أما داخل CI فتبقى مرتبطة بالمهمة النشطة حتى تتمكن من الوصول إلى أسرار سير العمل وبيانات اعتماد runner وأذونات النشر عبر OpenID Connect.

المُجمِّع هو حيث تتحول الحادثة إلى قصة أدوات ذكاء اصطناعي بدلًا من قصة بيانات اعتماد عامة. تقول Elastic إنه يفحص أكثر من 300 نمط فريد عبر مخازن بيانات الاعتماد على جهاز المطوّر، وأن الاستهداف الملحوظ موجّه نحو بيانات اعتماد أدوات الذكاء الاصطناعي: Anthropic وClaude وCodex وCursor وOpenAI وGemini. كما يلتقط بيانات اعتماد AWS وGCP وAzure وAlibaba Cloud، ورموز الوصول الشخصية على GitHub، ورموز JWT والجلسات، ورموز HashiCorp Vault، ومفاتيح SSH الخاصة، ورموز حسابات خدمة Kubernetes، ورموز npm. ويذكر Wiz أن قائمة الأهداف وُسّعت بنحو 70% مقارنةً بشيفرة Mini Shai-Hulud الأقدم التي بُني عليها، مع إضافات جديدة تشمل مخازن بيانات اعتماد وكلاء الذكاء الاصطناعي لـClaude وOpenAI وCodex وCursor وGemini، ومخازن مفاتيح العملات المشفرة لـFoundry وSolana وMonero، وملف master.key الخاص بـJenkins، وأسرار Argo CD وHarbor، وإعدادات CLI الخاصة بـAlibaba وTencent، و/etc/shadow.

يصف كل من Microsoft وElastic التصميم نفسه لاستخراج البيانات. تُسلسَل النتائج بصيغة JSON، وتُضغط باستخدام gzip، وتُشفَّر بمفتاح AES-256-GCM مولَّد عشوائيًا، ويُغلَّف ذلك المفتاح بالمفتاح العام RSA الخاص بالمهاجم. لا تُضمِّن الحمولة نطاق التحكم والسيطرة الخاص بها بشكل ثابت: تقول Elastic إنها تستعلم عن عقد ذكي على Ethereum عند 0xE1f2395ee43e45A1556EC6438a88c31B83493103 لجلب نقطة النهاية الحالية وقت التشغيل، لذا يمكن تدوير البنية التحتية دون لمس البرمجية الخبيثة. وإذا فشل ذلك، فإنها تبحث عن علامة موقَّعة تشفيريًا — thebeautifulmarchoftime — في سجل التزامات GitHub وتتحقق من النطاق مقابل مفتاح RSA مضمَّن. وإذا فشل المساران معًا، فإنها تستخرج البيانات عبر مستودع GitHub عام ينشئه حساب الضحية نفسه، موصوفًا بأنه "Shai-Hulud: Here We Go Again". وتلاحظ Microsoft أن أحد مسارات الاحتياط يشفر رمز GitHub مسروقًا عبر Base64 مزدوج بدلًا من تشفيره.

يعتمد انتشار الدودة على جودة الرموز المميزة. تذكر Elastic أن الدودة لا تنشط إلا عندما يعثر مسح بيانات الاعتماد على رمز npm يتمتع بـصلاحية الكتابة على الحزموالقدرة علىالنشر دون مصادقة ثنائية العوامل؛ ثم تنزّل أحدث ملف tarball لكل حزمة قابلة للكتابة، وتحقن نفسها فيه، وترفع رقم إصدار التصحيح، وتعيد النشر. وتضيف BleepingComputer أن كل رمز يُتحقق منه في الوقت الفعلي مقابل نقطة نهاية whoami الخاصة بالسجل قبل سرقته. هذه العملية هي التي حوّلت هوية واحدة مخترقة إلى مئات الإصدارات، وهي السبب في أن الإصدارات الخبيثة تبدو كترقيات تصحيح عادية.

An HTML card titled 'The first four hours, 4 August 2026', subtitled 'What the sources put where in the infection order, and the three counts the campaign is quoted with'. A four-step numbered column headed 'Infection order' reads: 1, 09:00 UTC: files pushed to main — attacker adds IDE persistence payloads to the keyv repository, then publishes a new keyv version, per Wiz Research; 2, the victim's CI builds the payload — keyv 6.0.0 reaches npm through the compromised account's own GitHub Actions workflow carrying valid provenance and a SLSA Build Level 3 attestation, per Orca Security and Zscaler ThreatLabz; 3, the worm republishes with stolen tokens — stolen npm tokens with write access and 2FA bypass bump patch versions, at peak roughly one infected package per second, per Elastic Security Labs and Zscaler ThreatLabz; 4, IDE hooks travel with the repos — a stolen GitHub App token commits .claude/settings.json and .vscode/tasks.json to up to 50 branches per accessible repository, per Elastic Security Labs. A right-hand panel headed 'Three counts, three units' shows: 400+, unique npm packages compromised by 6 August, per Elastic and Microsoft Threat Intelligence; 868, worm-reached packages across 1,381 versions, per Aikido via BleepingComputer and Orca Security; 1,300+, package versions with 2 billion monthly downloads, per CSA Singapore advisory AD-2026-009, 6 August. A footer reads: each figure is a snapshot taken while the campaign was still running; none of the cited sources claims a final total.

مسار الإصابة الذي لا يتطلب npm install

الاستنتاج الذي يفصل هذه الحملة عن ديدان npm السابقة هو أن التثبيت لم يعد السبيل الوحيد للدخول. يصف Elastic مسارين إضافيين للتنفيذ يستهدفان مستخدمي أدوات البرمجة بالذكاء الاصطناعي. والخطاف SessionStart في .claude/settings.json يشغّل node .claude/setup.mjs عند بدء جلسة Claude جديدة. وبالنسبة إلى VS Code، مهمة folderOpen في .vscode/tasks.json تشغّل node .vscode/setup.mjs عند فتح مستودع مصاب. تسرد تحليلات Microsoft العناصر الأربعة نفسها — .claude/settings.json، .claude/setup.mjs، .vscode/tasks.json، .vscode/setup.mjs — وتصفها بأنها مسار عدوى ثانوي يمكنه إعادة تشغيل الحمولة بعد اكتمال تثبيت npm الأصلي.

الشرط الذي يوسّع هذا الأمر على نحو هائل يكمن في بيانات الاعتماد المسروقة. فحين يكون رمز تطبيق GitHub من بينها، تُفيد Elastic بأن الدودة تُودِع الخطافات الضارة في ما يصل إلى 50 فرعًا لكل مستودع يمكن الوصول إليه، فتحقن .claude/settings.json و.vscode/tasks.json في كل منها. وخلاصة Elastic أن المطوّر الذي يستنسخ أحد هذه الفروع ويفتحه يمكن أن يُصاب بمجرد فتح المشروع — من دون تثبيت أي حزمة، وبالتالي من دون أي حماية من نصوص التثبيت، في المسار على الإطلاق.

يُفيد تقييم Zscaler بأن خطافات الاستمرارية تنجو من إزالة الحزمة وتُعاد تنفيذها بمجرد فتح المشروع في VS Code أو Claude Code، مما يتجاوز تخفيف --ignore-scripts الذي اعتمدته فرق كثيرة بعد ديدان npm السابقة. وتأتي توصيته مباشرةً على النحو التالي: تعامل مع ملفات تهيئة بيئة التطوير المتكاملة ووكيل الذكاء الاصطناعي — ‎.claude/‎ و‎.cursor/‎ و‎.vscode/‎ و‎.gemini/‎ — بوصفها شيفرة قابلة للتنفيذ، تُراجَع بالصرامة نفسها التي تُراجَع بها الشيفرة المصدرية.

توجد بصمة للشِق المتعلق بالمستودع من الهجوم. وتُفيد Elastic بأن الالتزامات التي أنشأتها الدودة يمكن تحديدها بواسطة اسم المؤلف claude ورسالة الالتزام chore: update config، وتسجّل Wiz سلسلة الرسالة نفسها. وتضيف Elastic أن رسالة الالتزام حملت أيضًا رمز GitHub المسروق إلى جانب سلسلة ترهيب — IfYouBlockThisAPIKeyItWillCrashTheLiveProductionServersOfAllThirdPartyClients — وهو ما تفسّره كمحاولة لإخافة المطورين وثنيهم عن إلغاء الرمز. وتسجّل Wiz السلسلة نفسها في الالتزامات الأولية، مع تبديل الرسالة الأقصر في الالتزامات التي تُدخل خطافات IDE.

A generated abstract illustration on a deep navy field: a tall repository-shaped block stands at centre, its face divided into thin horizontal branch lines. A narrow beam of pale light from an editor-shaped pane at upper left falls across the block, and where the beam touches one branch line, a small bright hook symbol appears and a thin amber thread runs down into a dark pool at the base. The other branch lines remain untouched and faintly lit. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

لا تتوافق الأعداد، وهذا ليس تناقضًا

كل رقم منشور لنطاق التأثير مرتبط بوحدة مختلفة، والوحدات غير قابلة للتبادل. أحصت Elastic Security Labs، في تقريرها بتاريخ 6 أغسطس، أكثر من 400 حزمة npm فريدة مخترقة. ووصفت Microsoft Threat Intelligence أكثر من 400 حزمة عبر عدة ناشرين غير مرتبطين. وقد قدّرت Aikido، حسب ما نقلته BleepingComputer، العدد بـ868 حزمة على الأقل عبر 1,381 إصدارًا. ويذكر Orca Security 10 حزم keyv وcacheable مسمومة مباشرةً مع أكثر من 619 مليون تنزيل شهري، ثم 868 حزمة إضافية و1,381 إصدارًا وصلت إليها الدودة، لأكثر من 2 مليار تثبيت شهري. وتسجّل النشرة الاستشارية AD-2026-009 الصادرة عن CSA السنغافورية، والمؤرخة 6 أغسطس، أكثر من 1,300 إصدار حزمة مخترق تمثّل معًا 2 مليار تنزيل شهري.

تلك ثلاثة مقاييس مختلفة — الحزم، وإصدارات الحزم، وحجم التنزيلات الشهرية — مأخوذة في ثلاث لحظات مختلفة من حملة كانت لا تزال جارية. ويوضّح سرد Zscaler للسرعة سببَ تباعدها: إذ يقول إن الدودة انتشرت ذاتيًا إلى أكثر من 400 حزمة خلال أقل من أربع ساعات، وفي ذروتها نشرت نحو حزمة مصابة واحدة كل ثانية. إن اعتبار عدد لاحق تصحيحًا لعدد سابق أمر خاطئ؛ فكل منها لقطة، ولا تدّعي أي من المصادر المذكورة وجود إجمالي نهائي.

أرقام التعرض لدى Elastic على مستوى المكتبة هي الأكثر اقتباسًا والأقل غموضًا. وتُفيد بأن keyv وحدها سُجّل لها أكثر من 600 مليون تنزيل الشهر الماضي، مع flat-cache قرب 580 مليونًا، وcacheable-request أكثر من 137 مليونًا، وcacheable أكثر من 30 مليونًا، وcache-manager أكثر من 16 مليونًا. وتُدرج نشرة CSA الإصدارات المخترقة المحددة، ومن بينها keyv 6.0.0، وflat-cache 6.1.24، وfile-entry-cache 11.1.6، وcacheable-request 13.0.20، وcacheable 2.5.1، وcache-manager 7.2.10، و@cacheable/utils 2.5.1، وecto 5.0.1.

فخ الإلغاء

يواجه المستجيبون الذين ثبّتوا إصدارًا متأثرًا مشكلة ثانية تلو الأولى. وتفيد Elastic بأن الحمولة، في مسار احتياطي مشروط على GitHub، تحاول تثبيت مكوّن لمراقبة الرموز يحافظ على الوصول إلى بيانات الاعتماد ويحتوي علىمعالج تدميري إذا أُبطل الرمز الخاضع للمراقبة. ويصف Zscaler هذه الآلية بتفصيل تشغيلي ويسمّيها فخّ إبطال الرمز: إذ تثبّت الدودة عملية خلفية تستعلم واجهة GitHub API كل 60 ثانية باستخدام الرمز المسروق، وإذا أعاد الرمز خطأ من نوع 4xx — أي أن الضحية أبطلته — تُطلق حمولة تدميرية ثانوية قد تشمل، بحسب المتغيّر، تنفيذ تعليمات برمجية عن بُعد أو حذف الدليل الرئيسي للمستخدم.

تضيف Wiz أن مفتاح الرجل الميت هو يُسلّح انتقائيًا استنادًا إلى رد من خادم القيادة والتحكم: يمكن للمشغّل إرجاع قيمة تحدد الأمر الذي ينبغي تسليحه والرمز الذي ينبغي أن يراقبه المفتاح من أجل الإبطال. وتلاحظ Wiz أيضًا أن المراقب يبحث عن رد صالح من نقطة نهاية المستخدم، لذا يمكن أن يكون أي نوع رمز صالح هناك هو المُحفّز.

النتيجة العملية موثّقة من قبل BleepingComputer ومن إرشادات Aikido التي تستشهد بها: يجب التعامل مع محطة عمل مطوّر أو مشغّل CI/CD قام بتثبيت نسخة متأثرة على أنها مخترقة حتى إذا أُزيلت الحزمة لاحقًا، لأن تنفيذ المرحلة الثانية قد يكون قد كشف رموز وصول وقوّض سلامة البناء. وتصل إرشادات Microsoft إلى الأمر نفسه من ناحية البناء، محذّرةً من أن المؤسسات التي ثبّتت حزمة متأثرة مع تمكين نصوص دورة الحياة يجب أن تتعامل مع محطة العمل أو مشغّل البناء على أنها قد تكون مخترقة، وأن تعيد بناء الأنظمة المتأثرة والمخرجات اللاحقة من مصادر موثوقة.

An HTML card titled 'Established, assessed, and not shown', subtitled 'The same five analyses, sorted by how strongly each claim is supported — not by how confidently it is written'. Three columns. ESTABLISHED lists: the keyv maintainer's GitHub account was compromised, files were pushed to main and a release was published on 4 August 2026; at least keyv 6.0.0 shipped through the victim's own CI with valid provenance and SLSA Build Level 3; a preinstall hook ran setup.mjs, which downloaded Bun v1.3.13 to execute an obfuscated payload; the collector scanned 300+ credential patterns including Anthropic, Claude, Codex, Cursor, OpenAI and Gemini; hooks in .claude/settings.json and .vscode/tasks.json run on session start and folder open; a GitHub App token extended the hooks to up to 50 branches per accessible repository; more than 400 unique packages were compromised within days; CSA Singapore published advisory AD-2026-009 on 6 August 2026. ASSESSED lists: attribution to the Mini Shai-Hulud family and a TeamPCP lineage; that the account takeover was the initial access route; that provenance must not be read as proof of safety, since it validates the pipeline and not the account; that IDE configuration files should be treated as executable code. NOT SHOWN lists: how the maintainer account was taken over, reported as unknown by Zscaler; any single final total, since the counts use packages, versions and downloads interchangeably; any confirmed reuse of a stolen AI-tooling credential against a provider account; who the operator is beyond vendor attribution; any remediation outcome, account recovery or enforcement action. A footer cites Elastic Security Labs, Microsoft Threat Intelligence, Wiz Research, Orca Security and CSA Singapore AD-2026-009.

ما هو مُثبَت، وما هو مُقيَّم، وما لم يُظهره أحد.

يتقاطع السجل الأساسي مع خمس تحليلات مستقلة على صعيد الميكانيكا، والمزاعم الميكانيكية هي أقوى جزء في الملف.

• تم اختراق حساب GitHub الخاص بمشرف keyv، ودُفعت ملفات خبيثة مباشرةً إلى main قبل نشر إصدار، في 4 أغسطس 2026 — وقد أبلغت عن ذلك باستمرار كل من Wiz وOrca Security وBleepingComputer وCSA Singapore.

• على الأقل وصل keyv 6.0.0 إلى npm عبر خط أنابيب CI الخاص بالضحية وهو يحمل مصدرًا موثوقًا صالحًا، مع تحديد Zscaler لشهادة SLSA Build Level 3. هذا هو الادّعاء الذي يجعل الحادثة جديرة بالملاحظة، وقد أكّدته ثلاث منظمات لم تشارك أيٌّ منها في تأليف أعمال الأخرى.

• نفّذ خطّاف preinstall الملفَّ setup.mjs، الذي نزّل Bun v1.3.13 وشغّل حمولةً مشوّشة فحصت أكثر من 300 نمط من أنماط بيانات الاعتماد، بما في ذلك بيانات اعتماد أدوات البرمجة بالذكاء الاصطناعي — ويتفق كلٌّ من Elastic وWiz على إصدار وقت التشغيل وعلى قائمة بيانات الاعتماد المستهدفة بالذكاء الاصطناعي.

• تُنفَّذ الخطافات المكتوبة في .claude/settings.json و.vscode/tasks.json عند بدء الجلسة وعند فتح المجلد، وقد وسّع رمز تطبيق GitHub ذلك ليشمل ما يصل إلى 50 فرعًا لكل مستودع يمكن الوصول إليه — وهو اكتشاف Elastic، والأساس لبيانها بأنه يمكن إصابة مطوّر عبر فتح مستودع.

• تم اختراق أكثر من 400 حزمة فريدة خلال أيام، ونشرت CSA Singapore، وهي جهة تنظيمية وطنية، تنبيهًا استشاريًا رقم AD-2026-009 في 6 أغسطس 2026 يتضمن الإصدارات والمؤشرات المتأثرة.

ما تتعامل معه المصادر بوصفه تقييمًا لا واقعةً ينبغي وسمُه. وتصف Wiz الحمولة بأنها سليل عائلة البرمجيات الخبيثة «Mini» Shai-Hulud، المبنية على مستودعات Shai-Hulud-Open-Source العامة التي نشرها TeamPCP، مع بضعة تغييرات جوهرية؛ وتُنسب Orca Security الهجوم إلى TeamPCP؛ وتربط Zscaler بين ChainDrop وTeamPCP وتضعه في سلسلة نسب تمتد من سبتمبر 2025. ذلك توافق بين المورّدين على الإسناد، وليس أمرًا يثبته مستند أولي مُستشهد به بشأن فرد أو مجموعة محددة بالاسم.

ثلاثة أمور لا يثبتها أي مصدر مُستشهد به، ولا يسدّ هذا المقال فراغها. أولًا، كيف تم الاستيلاء على حساب المشرف: يصرّح Zscaler بوضوح أن الآلية الدقيقة كانت غير معروفة في وقت تحليله. ثانيًا، إجمالي نهائي واحد: الأرقام 400 و868 و1,300 تُحصي حزمًا، وحزمًا وإصدارات، وإصدارات في لحظات مختلفة، ولا يدّعي أي مصدر أن الحملة مغلقة. ثالثًا، والأهم بالنسبة إلى الادعاء الخاص بالذكاء الاصطناعي في هذا السجل، لا يذكر أي مصدر مُستشهد به حالة مؤكدة لإعادة استخدام بيانات اعتماد مسروقة من Anthropic أو Codex أو Cursor أو Gemini أو OpenAI ضد حساب مزوّد. ما هو موثّق هو النية والقدرة — قائمة أهداف صريحة، وأداة تجميع بُنيت للوصول إليها — وليس اختراقًا لاحقًا مُثبتًا لأنظمة مزوّد ذكاء اصطناعي.

ما الذي تغيّر بعد — وما يتعيّن على المستجيب فعله

أكثر حل ملموس في السجل هو تغيير في المنصة. توصي Elastic بالترقية إلى npm 12 أو أحدث، وهو ما يحظر خطافات preinstall افتراضيًا؛ كما توصي إرشادات Microsoft بشكل مستقل بـ npm CLI v12 وmin-release-age كميزة تُبقي الإصدارات الجديدة مؤجلة لفترة كافية كي يتمكن المجتمع من اكتشاف أي اختراق قبل أن يصل إلى عملية البناء.

علاوة على ذلك، فإن خطوات الاستجابة التي تنشرها المصادر تتداخل بشكل كبير.

• Elastic: ألغِ جميع رموز GitHub، بما فيها رموز الجلسات، على الأجهزة المتأثرة؛ ألغِ رموز npm وأعِد توليدها، ولا سيما رموز الأتمتة ذات صلاحية الكتابة وتجاوز المصادقة الثنائية؛ ابحث في المستودعات عن التزامات غير مصرّح بها تحمل الرسالة chore: update config from claude@users.noreply.github.com؛ بدّل أسرار السحابة وKubernetes وVault وأدوات الذكاء الاصطناعي وCI/CD؛ فعّل المصادقة الثنائية على حسابات npm.

• Microsoft: امسح ذاكرات التخزين المؤقت لـ npm وyarn على نقاط النهاية المتأثرة ومضيفات البناء، وثبّت الإصدارات السليمة المعروفة، وراجع ملفات القفل والمخرجات بحثًا عن الإصدارات المخترقة بما في ذلك المراجع العابرة، وأعد بناء صور الأساس المشتركة ومنصات تشغيل البناء المرجعية، وراجع نطاقات الرموز المميزة وموافقات سير العمل وإثبات مصدر الإصدار، لأن الحادث يتسق مع إساءة استخدام خط أنابيب CI/CD عبر النشر باستخدام OIDC.

• سنغافورة CSA: أزل الإصدارات المتأثرة من بيئات التطوير والبناء وCI/CD، وتعامل مع الأنظمة المتأثرة على أنها مخترقة وأعد بناءها، وبدّل بيانات الاعتماد، وراجع بيئات السحابة والشيفرة المصدرية بحثًا عن وصول غير مصرح به، وراقب المؤشرات المنشورة، وعزّز ضوابط القوائم المسموح بها والتحقق من السلامة وإثبات المصدر.

• {{1}}Zscaler: تعامل مع .claude/ و.cursor/ و.vscode/ و.gemini/ كشيفرة قابلة للتنفيذ، وتوقف عن اعتبار مصدرية SLSA أو Sigstore دليلًا على السلامة — وبدلًا من ذلك، ادمجها مع كشف الشذوذ في سلوك النشر، مثل النشر خارج ساعات العمل، ونشر الإصدارات بكميات كبيرة، والناشرين لأول مرة.{{/1}}

لا يحتوي السجل على نتيجة معالجة. ولا يُفيد أي مصدر مُستشهد به بإزالة النسخ الخبيثة بالكامل، أو استعادة حساب، أو اعتقال، أو إجراء إنفاذ تنظيمي؛ فتنبيه CSA إشعار للمدافعين، وليس حكمًا ضد أي طرف.

ما يغيّره الحادث هو تصنيف. فملف إعداد لأداة مطوّرين هو مسار تنفيذ، وفتح محرّر لمجلد هو حدث تنفيذ. وإثبات المنشأ هو عبارة عن أي خط أنابيب أنتج حزمة — لا عن مَن كان يحمل المفاتيح عندما شغّل ذلك الخط، وهذه تحديدًا هي الفجوة التي أفلت عبرها أول إصدار من keyv.