
إعادة إنتاج CVE: cve-2026-0770-langflow_rce_reproduction
CVSS 9.8 (حرجة) | ZDI-CAN-27325 | CWE-829: إدراج وظيفة من مجال تحكم غير موثوق
CVE-2026-0770 هي ثغرة حرجة لتنفيذ تعليمات برمجية عن بُعد دون مصادقة في Langflow، وهو إطار تطبيقات منخفض التعليمات البرمجية لبناء تطبيقات مدعومة بنماذج اللغات الكبيرة (LLM). يقع الخلل في نقطة النهاية /api/v1/validate حيث يتم تمرير معامل exec_globals بشكل غير آمن إلى دالة exec() في بايثون، مما يسمح للمهاجمين غير المصادق عليهم بتنفيذ تعليمات برمجية عشوائية بصلاحيات عملية Langflow (عادةً صلاحيات الجذر root).
اكتُشفت من خلال مبادرة Zero Day Initiative (ZDI-CAN-27325).
تستقبل نقطة نهاية التحقق في Langflow على الرابط /api/v1/validate حمولة JSON تحتوي على حقل exec_globals. يُقصد من هذا القاموس الاستخدام الداخلي لملء المتغيرات العامة مسبقًا أثناء التحقق من المكونات المخصصة. ومع ذلك، لا تقوم نقطة النهاية بتعقيم أو تقييد محتويات exec_globals، ويتم تمرير القيم مباشرةً إلى دالة exec() المدمجة في بايثون:
exec(user_code, exec_globals)
يمكن للمهاجم حقن تعليمات برمجية عشوائية في بايثون من خلال توفير قاموس exec_globals مخصص يتجاوز الدوال المدمجة أو يحقن دوالًا استدعائية خبيثة. عندما تقيّم Langflow داخليًا كود المستخدم مع هذه المتغيرات العامة، يتم تنفيذ التعليمات البرمجية المحقونة.
تُصنَّف الثغرة على أنها CWE-829 لأن التطبيق يضمّن وظيفة (عبر exec_globals) من مصدر غير موثوق (طلب الشبكة) دون تحقق كافٍ، مما يؤدي إلى تنفيذ تعليمات برمجية عشوائية.
جميع إصدارات Langflow السابقة للتصحيح الذي يطبق التعقيم المناسب لـ exec_globals في نقطة نهاية التحقق متأثرة. تشمل الإصدارات المتأثرة تحديدًا:
/api/v1/validate معامل exec_globals دون تحقق/api/v1/validate مع حمولة exec_globals خبيثةاستخدم السكربت المرفق exploit.py:
python exploit.py --target 192.168.1.100 --port 7860 --command "id > /tmp/pwned"
exec_globals.إخلاء مسؤولية: هذه المعلومات مقدمة لأغراض تعليمية ولاختبارات الأمان المصرح بها فقط. الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها يعد غير قانوني.