في 21 أكتوبر 2026 نُشر إصدار LiteLLM 1.107.0 على PyPI وعلى صور Docker الرسمية، وفيه سارق بيانات اعتماد يعمل في كل مرة يبدأ فيها بايثون. LiteLLM بوابة مفتوحة المصدر تربط التطبيقات بعشرات نماذج الذكاء الاصطناعي، ولذلك فإن الجهاز الذي يشغّلها غالباً ما يحمل مفاتيح OpenAI وAnthropic وAWS وقواعد البيانات في مكان واحد. هذا ما جعل الحادثة أخطر من مجرد حزمة مخترَقة أخرى. في هذا المقال نشرح ما حدث، وكيف تعرف إن كنت متأثراً، وما الخطوات الفعلية للتعافي.

ما الذي حدث بالضبط؟

LiteLLM 1.107.0 المخترَق: سارق مفاتيح داخل بوابة نماذج الذكاء الاصطناعي، وماذا تفعل الآن — برمجة وتطوير

بحسب تحليل فريق LiteLLM نفسه، لم يُخترق الكود المصدري مباشرة، بل خط الإصدار (Release Pipeline). استخدم المهاجمون رموز OAuth مسروقة من أدوات GitHub CLI لدى ثلاثة مهندسين لتشغيل سير عمل الإصدار الخاص. حساب واحد شغّل الإصدار الخبيث وحساب آخر وافق عليه، فمرّ كل شيء بشكل يبدو شرعياً.

الجدول الزمني (بالتوقيت العالمي)

القناة مدة التوفّر
حزمة PyPI من 11:39 إلى 13:23 تقريباً
صور Docker (الوسوم v1.107.0 وlatest وmain-latest وmain-stable) من 11:46 إلى 14:20 تقريباً

النافذة قصيرة، لكن مشاريع كثيرة تثبّت آخر إصدار تلقائياً في عمليات البناء الليلية أو في CI، وهذا يكفي لوقوع الضرر.

ماذا يفعل البرنامج الخبيث؟

بحسب التقارير المنشورة، يزرع الإصدار ملفات في جذر مجلد site-packages بأسماء مثل cook.pth وcook.py وsitecustomize.py. ملف .pth يُنفَّذ تلقائياً عند بدء مفسّر بايثون، أي أنك لا تحتاج إلى استيراد LiteLLM أصلاً ليعمل السارق.

الأهداف المعلنة:

  • بيانات اعتماد AWS وGCP وAzure.
  • أسرار Kubernetes وDocker وسجلات الحاويات وGit.
  • مفاتيح SSH وGPG وTLS.
  • كلمات مرور المتصفح وملفات تعريف الارتباط.
  • متغيرات البيئة كاملة، وعند وجود DATABASE_URL تُسحب صفوف جداول بيانات الاعتماد في LiteLLM Proxy.

تُشفَّر البيانات بـ AES-256 وRSA-4096 وتُرسل إلى نطاق يشبه نطاق المشروع الحقيقي. وهناك أيضاً مرحلة ثانية هي باب خلفي (RAT) يمنح المهاجم وصولاً مستمراً.

النقطة المقلقة: هذه الملفات تبقى في مكانها حتى لو أزلت الحزمة بـ pip uninstall، وأي عملية محمِّلة تظل تعمل. حذف الحزمة وحده لا يعني أنك نظيف.

وأفادت شركة Wiz بأنها رصدت استخداماً فعلياً للبيانات المسروقة بعد نحو أربع ساعات ونصف من سحبها، أي أن الاستغلال سريع وليس نظرياً.

هل أنت متأثر؟

اسأل نفسك الأسئلة التالية بالترتيب:

  1. هل ثبّتّ أو بنيت أي شيء يعتمد على litellm يوم 21 أكتوبر ضمن النافذتين أعلاه؟
  2. هل تستخدم صور Docker بوسم latest أو main-stable دون تثبيت بالـ digest؟
  3. هل تجد الملفات cook.pth أو cook.py في site-packages؟
  4. هل ظهرت اتصالات صادرة إلى نطاق يشبه litellm لكن بامتداد مختلف؟

الإصدارات السابقة سليمة بحسب المشروع، وآخر إصدار سليم هو 1.106.2. أما عملاء النسخة المؤسسية الخاصة فلم يتأثروا.

خطوات التعافي

لا تكتفِ بالترقية. اتبع هذا التسلسل:

  1. اعزل الجهاز أو الحاوية المتأثرة عن الشبكة.
  2. أوقف العمليات العاملة وأزل ملفات cook.* وsitecustomize.py المزروعة.
  3. أعد البناء من الصفر بدل ترقيع البيئة الحالية، مع تثبيت الإصدار 1.106.2.
  4. دوّر كل سرّ كان الجهاز قادراً على قراءته: مفاتيح النماذج، سحابتك، رموز GitHub، مفاتيح SSH، كلمات مرور قواعد البيانات.
  5. نفّذ التدوير من جهاز نظيف وليس من الجهاز المصاب.
  6. راجع السجلات بحثاً عن أي استخدام لهذه الأسرار خلال نافذة التعرّض وبعدها.

دروس لفريقك

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

  • ثبّت التبعيات بأرقام إصدارات دقيقة وبتجزئات (hashes)، ولا تستخدم latest في الإنتاج.
  • أضف فترة انتظار لأي إصدار جديد قبل اعتماده، فمعظم الإصدارات الخبيثة تُسحب خلال ساعات.
  • لا تُبقِ مفاتيح طويلة الأمد في متغيرات البيئة على أجهزة البناء؛ استخدم رموزاً قصيرة العمر.
  • فعّل المصادقة المقاومة للتصيّد لحسابات النشر، وراجع صلاحيات رموز GitHub CLI.
  • افصل بوابة النماذج في بيئة لا تصل إلى أسرار السحابة الأخرى.

أسئلة شائعة

هل يكفي أن أحدّث LiteLLM إلى نسخة أحدث؟

لا. الترقية لا تزيل الملفات المزروعة ولا تلغي سرقة الأسرار. يجب إعادة البناء وتدوير كل بيانات الاعتماد.

هل أنا آمن إن لم أستورد litellm في كودي؟

ليس بالضرورة. ملف .pth يعمل عند بدء بايثون نفسه، فالتثبيت وحده في البيئة كافٍ لتشغيله.

هل هناك رقم CVE لهذه الحادثة؟

حتى كتابة هذا المقال لا يوجد رقم CVE، فهي هجمة على سلسلة التوريد وليست ثغرة برمجية في الكود.

الخلاصة

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

المصادر: The Hacker News، Help Net Security، The Register، Datadog Security Labs