في 31 مارس 2026 وقع واحد من أبرز أخطاء النشر البرمجي المرتبطة بأدوات الذكاء الاصطناعي خلال العام: إصدار Claude Code رقم 2.1.88 تضمن ملف Source Map كبيرًا أتاح الوصول إلى أجزاء واسعة من الكود المصدري الداخلي للأداة.
قدّرت التحليلات حجم المادة المكشوفة بنحو 500 إلى 512 ألف سطر موزعة على قرابة 1900 ملف. لكن النقطة الأهم هي ما لم يحدث: لم يكن الحادث اختراقًا لخوادم Anthropic، ولم تُسرّب أوزان نموذج Claude أو بيانات تدريبه، وقالت Anthropic إن بيانات العملاء وبيانات الاعتماد الحساسة لم تكن ضمن المواد المكشوفة.
وصفت Anthropic الواقعة بأنها مشكلة في تغليف الإصدار ناتجة عن خطأ بشري وليست خرقًا أمنيًا لأنظمتها، وفق التصريح الذي نقلته BleepingComputer.
ماذا حدث في إصدار Claude Code 2.1.88؟
Claude Code هو وكيل برمجي من Anthropic يستطيع قراءة المشروع، تعديل الملفات، تشغيل الأوامر والاختبارات والعمل مع أدوات التطوير. وفي مارس 2026 كان من الممكن تثبيت واجهة CLI الخاصة به عبر حزمة @anthropic-ai/claude-code المنشورة على npm.
عند نشر الإصدار 2.1.88، احتوت الحزمة على ملف باسم cli.js.map بحجم يقارب 60 ميغابايت. المشكلة لم تكن في وجود JavaScript مجمّع فقط، بل في أن Source Map احتوى على معلومات تسمح باستعادة قدر كبير من الشيفرة الأصلية القابلة للقراءة.
اكتشف الباحث الأمني Chaofan Shou الملف، وبعد انتشار الخبر بدأ مطورون في استخراج محتوياته وتحليل بنية Claude Code، ثم ظهرت نسخ من المادة على مستودعات ومنصات أخرى قبل أن تبدأ Anthropic في إرسال طلبات إزالة مرتبطة بحقوق النشر.
ما هو Source Map ولماذا كان وجوده مهمًا؟
تُحوّل تطبيقات JavaScript وTypeScript عادة قبل التوزيع: قد تُدمج الملفات، وتُختصر أسماء المتغيرات، ويُضغط الكود أو يتحول من TypeScript إلى JavaScript. هذا يجعل الكود النهائي مختلفًا عن الملفات التي يعمل عليها المطور أثناء التطوير.
وفق تعريف MDN للـSource Maps، فإن Source Map يربط الكود المحوّل أو المصغّر بالنسخة الأصلية منه، بحيث تستطيع أدوات التطوير عرض الملفات والأسطر الأصلية أثناء تصحيح الأخطاء.
وجود Source Map في تطبيق منشور ليس ثغرة بحد ذاته. يمكن للشركات نشر Source Maps عمدًا لأغراض debugging، وأحيانًا لا تحتوي هذه الملفات على نص الشيفرة الأصلية نفسه.
لكن الخطر يتغير عندما يتضمن الملف محتوى المصادر الأصلية، مثل حقل sourcesContent. عندها لا يحتاج المحلل إلى التخمين أو Reverse Engineering التقليدي لاستعادة أجزاء كبيرة من المشروع؛ فقد تكون الشيفرة نفسها موجودة داخل ملف الخريطة.
وهذا هو جوهر واقعة Claude Code: ملف debugging دخل إلى Artifact عام لم يكن من المفترض أن يوزع بهذه الصورة.
هل تم اختراق Anthropic؟
لا توجد أدلة على أن مهاجمًا اخترق بنية Anthropic للوصول إلى الكود في هذه الواقعة.
الفارق هنا مهم من الناحية الأمنية. في الاختراق التقليدي يستغل المهاجم ضعفًا أو بيانات اعتماد أو مسار وصول غير مصرح به للحصول على معلومات خاصة. أما في حادثة Claude Code فقد نشرت الشركة نفسها Artifact يحتوي على معلومات داخلية ضمن عملية إصدار عادية.
لذلك فإن وصفها بأنها تعرّض أو كشف غير مقصود للكود المصدري أكثر دقة من الإيحاء بأن أنظمة Anthropic تعرضت للاختراق.
هل تسرب نموذج Claude نفسه؟
لا. Claude Code ليس نموذج Claude نفسه.
Claude هو نموذج اللغة الذي تجري عليه عملية الاستدلال، بينما Claude Code هو طبقة برمجية Agentic تستخدم النموذج وتربطه بالملفات والأوامر والأدوات وسير العمل البرمجي.
الكود الذي ظهر في حادثة مارس كان متعلقًا بهذه الطبقة التطبيقية وتشغيل Claude Code. لا يوجد دليل من الواقعة على كشف:
- أوزان Model Weights الخاصة بنماذج Claude.
- بيانات تدريب Claude.
- البنية الكاملة لخوادم inference التابعة لـAnthropic.
- محادثات جميع المستخدمين أو مستودعاتهم البرمجية.
- مفاتيح API أو بيانات اعتماد العملاء، وفق تصريح Anthropic.
وهذه نقطة ضرورية لأن عبارة «تسريب كود Claude» قد تُفهم خطأ على أنها تعني نشر النموذج نفسه أو أسراره التدريبية.
ماذا احتوت المادة المكشوفة؟
بحسب تحليل الملفات والتغطيات المنشورة بعد الحادثة، أتاح Source Map الاطلاع على أجزاء واسعة من تنفيذ Claude Code الداخلي، بما في ذلك منطق متعلق بالأدوات، وإدارة الجلسات، والصلاحيات، والواجهات وتجارب أو Features لم تكن كلها موثقة للمستخدمين في ذلك الوقت.
كما ظهرت Feature Flags وأجزاء مرتبطة بميزات قيد التطوير، وهو ما جعل الحادثة مهمة تجاريًا وتقنيًا حتى مع عدم تعرض بيانات العملاء.
لكن يجب التفريق بين ثلاثة مستويات:
- ما أكدته Anthropic: إصدار Claude Code احتوى على كود داخلي لم يكن مقصودًا نشره.
- ما أمكن التحقق منه من الـArtifact: وجود كمية كبيرة من Source Code قابلة للاستعادة وتحليل بنية التطبيق.
- الاستنتاجات حول خطط Anthropic المستقبلية: وجود Feature Flag أو اسم داخلي في الكود لا يعني بالضرورة أن الميزة ستصدر أو أن تصميمها النهائي سيبقى كما هو.
لذلك لا ينبغي التعامل مع كل اسم أو Prototype موجود في Snapshot باعتباره إعلانًا رسميًا عن منتج مستقبلي.
هل كشف الكود يعني وجود ثغرة أمنية؟
ليس تلقائيًا.
امتلاك Source Code يجعل تحليل التطبيق أسهل، وقد يساعد باحثًا أو مهاجمًا على فهم منطق الصلاحيات، ومسارات البيانات، والتكاملات، وحالات Edge Cases بسرعة أكبر. لكنه لا يثبت بمفرده وجود Vulnerability قابلة للاستغلال.
لكي تتحول المعلومة إلى ثغرة فعلية يجب العثور على خطأ أمني محدد، وتحديد شروط استغلاله وتأثيره وإصدار المنتجات المتأثرة.
هذه نقطة مهمة لأن بعض ردود الفعل بعد الحادثة تعاملت مع نشر الكود وكأنه يعني أن مستخدمي Claude Code أصبحوا مخترقين تلقائيًا. لا يوجد ما يدعم هذا الاستنتاج.
ما المخاطر الحقيقية للحادثة؟
1. كشف الملكية الفكرية وبنية المنتج
الكود الداخلي لمنتج مغلق المصدر قد يحتوي على سنوات من القرارات الهندسية: كيفية تنظيم الأدوات، إدارة الصلاحيات، معالجة الأخطاء، تنسيق الـAgents وتحويل طلب المستخدم إلى إجراءات.
معرفة هذه التفاصيل تقلل تكلفة تحليل المنتج بالنسبة إلى المنافسين والباحثين وأي جهة تحاول فهم سلوكه الداخلي.
2. تسهيل البحث عن نقاط الضعف
Security through obscurity ليست بديلًا عن تصميم آمن، والبرمجيات يجب ألا تعتمد على سرية الكود وحدها. مع ذلك، الحصول على الكود الأصلي يجعل مراجعة Attack Surface أسرع بكثير من تحليل Binary أو JavaScript مضغوط فقط.
يمكن للباحث عندها التركيز مباشرة على الأجزاء الحساسة مثل تنفيذ الأوامر، قراءة الملفات، Permission Checks، الاتصالات الخارجية والتكامل مع MCP.
3. صعوبة استعادة السرية بعد النشر
إزالة الملف الأصلي أو سحب إصدار npm توقف التوزيع من المصدر الرسمي، لكنها لا تجعل النسخ التي تم تنزيلها سابقًا تختفي.
بعد نسخ Artifact إلى مستودعات ومرايا وأجهزة مطورين مختلفة، يصبح احتواء كشف الملكية الفكرية مختلفًا جذريًا عن إصلاح Server Misconfiguration يمكن إغلاقه فورًا.
4. مخاطر مرتبطة بسلسلة توريد البرمجيات
الحادثة تذكير بأن Software Supply Chain لا تتعلق فقط بإدخال Dependency خبيثة إلى المشروع. الخطر يمكن أن يسير في الاتجاه الآخر أيضًا: قد تحتوي عملية Build أو Packaging على ملفات داخلية أو مفاتيح أو Debug Artifacts لا ينبغي أن تصل إلى الحزمة المنشورة.
إذا كنت تبني تطبيقات LLM أو AI Agents، فإن مراجعة Dependencies وMCP servers وSecrets وTool Permissions ليست سوى جزء من الصورة. يشرح دليل CyberOPlus حول أمن تطبيقات LLM وRAG وAI Agents كيفية التعامل مع هذه المكونات باعتبارها Attack Surfaces مستقلة.
ماذا تقول حادثة Claude Code عن نشر حزم npm؟
توضح وثائق npm الرسمية لـpackage.json أن حقل files يمكن استخدامه لتحديد الملفات التي تدخل الحزمة المنشورة، كما يمكن استخدام .npmignore لاستبعاد ملفات غير مطلوبة.
وهذا يعني أن أمان عملية النشر يجب ألا يعتمد على افتراض أن Build Directory يحتوي فقط على الملفات الآمنة للنشر.
النهج الأقوى هو التعامل مع Package Artifact نفسه كمنتج يجب مراجعته قبل وصوله إلى Registry:
- استخدم Allowlist للملفات المطلوبة بدل نشر كل ما يوجد في المجلد.
- افحص محتوى Tarball النهائي وليس Source Repository فقط.
- تحقق من Source Maps وDebug Symbols وTest Fixtures.
- ابحث آليًا عن Secrets وCredentials قبل النشر.
- قارن محتوى الحزمة مع إصدار سابق واكتشف الزيادات غير المتوقعة في الحجم.
- ضع Release Gates تمنع نشر Artifact غير معتاد قبل مراجعته.
ملف Source Map يقترب حجمه من 60 ميغابايت داخل إصدار CLI كان إشارة يمكن لعملية Release Validation أن تلتقطها قبل النشر.
هل كان على مستخدمي Claude Code تغيير مفاتيح API؟
الحادثة وحدها لا تعني أن كل مستخدم كان بحاجة إلى تدوير مفاتيحه.
Anthropic قالت إن Credentials الخاصة بالعملاء لم تكن ضمن المواد المكشوفة. لذلك لا يوجد أساس لطلب تغيير كلمات المرور أو API Keys لجميع المستخدمين لمجرد تثبيت Claude Code قبل الحادثة.
تدوير Credential يصبح ضروريًا إذا ظهرت أدلة منفصلة على تعرضه، مثل وجوده داخل Logs أو Repository منشور أو جهاز مخترق.
الممارسة الصحيحة هي تجنب ردود الفعل العامة غير المبنية على طبيعة البيانات التي تعرضت فعلًا.
هل كان الإصدار 2.1.88 برمجية خبيثة؟
لا توجد أدلة على ذلك.
المشكلة المتعلقة بهذه الحادثة كانت أن الإصدار احتوى على ملفات داخلية زائدة. وجود Source Map لا يحول التطبيق إلى Malware ولا يعني أن من ثبته قد تعرض للاختراق.
لهذا يجب الفصل بين:
- إصدار نشر معلومات داخلية بالخطأ.
- إصدار يحتوي على Vulnerability.
- إصدار تم العبث به عبر Supply Chain Attack.
- برنامج خبيث متعمد.
هذه سيناريوهات أمنية مختلفة ولا ينبغي دمجها في وصف واحد.
ما الذي تغير منذ حادثة مارس 2026؟
الحادثة أصبحت الآن واقعة تاريخية وليست تسريبًا ما زال يحدث لحظة قراءة المقال.
واصلت Anthropic تطوير Claude Code بعد الإصدار 2.1.88، وأصبحت الأداة متاحة عبر الطرفية وبيئات التطوير وتطبيق سطح المكتب والويب. كما توضح وثائق Claude Code الحالية أن Native Install أصبح الأسلوب الموصى به لتثبيت CLI.
حتى أغسطس 2026، يشير مستودع Claude Code الرسمي على GitHub إلى أن التثبيت عبر npm أصبح Deprecated، بينما توصي Anthropic بالـNative Installer أو Homebrew أو WinGet حسب نظام التشغيل.
هذا لا يعني أن الشركة أوقفت npm بسبب حادثة Source Map وحدها؛ لا توجد إفادة رسمية تربط قرار Deprecation بسبب واحد فقط. لكنه تغيير مهم يجب أخذه في الاعتبار عند قراءة شروحات قديمة ما زالت تقدم npm install -g @anthropic-ai/claude-code باعتباره طريقة التثبيت الأساسية.
كيف يستخدم Claude Code الصلاحيات حاليًا؟
كشف Source Code دفع كثيرين إلى مناقشة ما يستطيع Agent فعله على جهاز المطور. لكن تقييم الأمان الحالي يجب أن يعتمد أيضًا على النسخة الحالية من المنتج وليس Snapshot تعود إلى مارس.
وفق وثائق الأمان الرسمية لـClaude Code، يعتمد Manual Mode على صلاحيات تبدأ بالقراءة فقط، وتحتاج عمليات مثل تعديل الملفات أو تشغيل أوامر يمكنها تغيير النظام إلى موافقة المستخدم.
تدعم الأداة أيضًا Sandboxing لعزل أوامر Bash على مستوى الملفات والشبكة، إضافة إلى قواعد Permissions يمكن تخصيصها.
لكن Anthropic نفسها تؤكد أن المستخدم مسؤول عن مراجعة الكود والأوامر المقترحة قبل الموافقة عليها. وهذا مهم خصوصًا عند تشغيل وكيل برمجي على Repository حساس أو جهاز يحتوي على Credentials وبيانات إنتاج.
ما الدرس الأهم للمطورين؟
الدرس ليس أن Source Maps «خطيرة» ويجب حذفها من كل مشروع. Source Maps أداة تطوير مفيدة، ويمكن استخدامها بأمان عندما يكون نشرها قرارًا مقصودًا وتكون محتوياتها معروفة.
الدرس الحقيقي هو أن Release Artifact يجب أن يخضع للمراجعة الأمنية بنفس جدية الكود نفسه.
قد يمتلك المشروع Secure Coding Guidelines ممتازة، واختبارات Unit وSAST وDependency Scanning، ثم يكشف معلومات حساسة في الخطوة الأخيرة لأن Pipeline نشرت ملفًا لم يكن ضمن التصميم.
أفضل سؤال قبل النشر ليس فقط:
«هل الكود آمن؟»
بل أيضًا:
«ما الذي سندفعه فعليًا إلى Registry أو CDN أو Container Registry، وهل راجع أحد المحتوى النهائي؟»
الخلاصة
في 31 مارس 2026 نشرت Anthropic بالخطأ إصدار Claude Code 2.1.88 مع Source Map أتاح استعادة كمية كبيرة من الكود الداخلي، قُدرت بنحو 500 إلى 512 ألف سطر.
كانت الواقعة خطأ Packaging حقيقيًا وكشفًا مهمًا للملكية الفكرية، لكنها لم تكن اختراقًا لأنظمة Anthropic وفق الشركة، ولم تكشف أوزان Claude أو بيانات تدريبه، كما قالت Anthropic إن بيانات العملاء وCredentials لم تتعرض.
القيمة الأمنية للحادثة اليوم ليست في التعامل معها كخبر عاجل، بل كدراسة حالة واضحة عن مخاطر Build Artifacts وSoftware Supply Chain: قد تكون كل طبقات التطبيق محمية، ثم يتحول ملف Debug واحد في المرحلة الأخيرة من Pipeline إلى أكبر مصدر للتعرض.
وبالنسبة لمستخدمي Claude Code، فإن تقييم الأداة اليوم يجب أن يعتمد على حالتها الحالية وإعدادات Permissions وSandboxing وأساليب التثبيت المدعومة، لا على افتراض أن Snapshot مكشوفة في مارس 2026 تمثل كل ما أصبح عليه Claude Code لاحقًا.