ثغرة خطيرة في LangChain Core تكشف الأسرار عبر هجوم Serialization Injection

أعلنت تقارير أمنية حديثة عن اكتشاف ثغرة أمنية بالغة الخطورة في مكتبة LangChain Core، وهي الحزمة الأساسية بلغة بايثون التي تشكل العمود الفقري لنظام LangChain المستخدم في بناء تطبيقات مدعومة بالنماذج اللغوية الكبيرة (LLMs). الثغرة، التي تحمل الرمز CVE-2025-68664، حصلت على تقييم خطورة مرتفع للغاية بلغ 9.3 من أصل 10 وفق مقياس CVSS، ما يجعلها واحدة من أخطر الثغرات التي تهدد بيئة تطوير تطبيقات الذكاء الاصطناعي. الباحث الأمني ياردن بورات هو من كشف عنها في الرابع من ديسمبر 2025، وأطلق عليها اسم LangGrinch.

تكمن خطورة هذه الثغرة في إمكانية استغلالها من قبل المهاجمين لسرقة بيانات حساسة، بما في ذلك الأسرار المخزنة في متغيرات البيئة، إضافة إلى القدرة على التأثير في استجابات النماذج اللغوية عبر هجمات Prompt Injection، وهو ما يفتح الباب أمام سيناريوهات متعددة من الاختراقات.

تفاصيل تقنية حول الثغرة وآلية الاستغلال

وفقاً للتحذير الصادر عن مطوري المشروع، فإن الثغرة تتعلق بوظيفتي dumps() و dumpd() داخل المكتبة، حيث تفشل هذه الوظائف في التعامل الآمن مع القواميس التي تحتوي على المفتاح الداخلي “lc”. هذا المفتاح يُستخدم عادةً لتمييز الكائنات المسلسلة داخل إطار LangChain، لكن عند إدخال بيانات يتحكم بها المستخدم تحتوي على هذا المفتاح، يتم التعامل معها على أنها كائنات شرعية ضمن النظام، ما يسمح بإنشاء كائنات غير آمنة.

هذا الخلل يتيح للمهاجمين تنفيذ عمليات غير متوقعة، مثل استخراج الأسرار عند تفعيل خيار secrets_from_env=True، أو إنشاء فئات داخل نطاقات موثوقة مسبقاً مثل langchain_core و langchain_community، بل وقد يصل الأمر إلى تنفيذ تعليمات برمجية عشوائية عبر قوالب Jinja2.

التحديثات الأمنية والإجراءات الوقائية

استجابةً لهذه الثغرة، أصدرت LangChain تحديثاً أمنياً يتضمن تغييرات جوهرية، أبرزها إضافة خيار allowed_objects الذي يسمح للمستخدمين بتحديد الفئات المصرح بها فقط أثناء عمليات التسلسل وإلغاء التسلسل. كما تم تعطيل قوالب Jinja2 بشكل افتراضي، وإلغاء خيار التحميل التلقائي للأسرار من البيئة عبر ضبط secrets_from_env=False.

الإصدارات المتأثرة من مكتبة langchain-core تشمل:

  • من الإصدار 1.0.0 وحتى أقل من 1.2.5 (تم إصلاحها في 1.2.5)
  • أقل من الإصدار 0.3.81 (تم إصلاحها في 0.3.81)
ثغرة مشابهة في LangChain.js وتأثيرها على المطورين

لم تقتصر المشكلة على مكتبة بايثون، إذ تم رصد ثغرة مشابهة في LangChain.js تحمل الرمز CVE-2025-68665 بتقييم خطورة 8.6. هذه الثغرة تنبع من نفس المشكلة المتعلقة بعدم التعامل الآمن مع المفتاح “lc”، ما يتيح استخراج الأسرار وتنفيذ هجمات حقن الأوامر. الإصدارات المتأثرة تشمل حزم npm التالية:

  • @langchain/core من 1.0.0 وحتى أقل من 1.1.8 (تم إصلاحها في 1.1.8)
  • @langchain/core أقل من 0.3.80 (تم إصلاحها في 0.3.80)
  • langchain من 1.0.0 وحتى أقل من 1.2.3 (تم إصلاحها في 1.2.3)
  • langchain أقل من 0.3.37 (تم إصلاحها في 0.3.37)

الباحث بورات شدد على أن أكثر طرق الاستغلال شيوعاً تتم عبر حقول الاستجابة الخاصة بالنماذج مثل additional_kwargs أو response_metadata، والتي يمكن التحكم بها عبر هجمات Prompt Injection، ليتم لاحقاً تسلسلها وإلغاء تسلسلها في العمليات المستمرة، وهو ما يمثل تقاطعاً خطيراً بين الذكاء الاصطناعي ومفاهيم الأمن التقليدي.

محمد طاهر
محمد طاهر
المقالات: 1095

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


The reCAPTCHA verification period has expired. Please reload the page.