CVE-2026-50180 in Langroid
الملخص
بحسب VulDB • 10/07/2026
Langroid هو إطار عمل لبناء التطبيقات المدعومة بنماذج لغوية كبيرة. قبل الإصدار 0.64.0، كان يحتوي مكون `SQLChatAgent` في حزمة `langroid` على طبقة دفاع عميق `_validate_query` التي تستخدم قائمة حظر (blocklist) بتنسيق تعبير نمطي (`regex`) باسم `_DANGEROUS_SQL_PATTERNS` لتعداد البدائل SQL الخطرة بناءً على أسماء الدوال المحددة. تفتقر هذه القائمة إلى عائلات كشف ملفات نظام الملفات الخاصة بـ PostgreSQL القياسية مثل `pg_read_file()` و`pg_stat_file()` و`pg_ls_logdir()` و`pg_ls_waldir()` و`pg_current_logfile()` (ودوال أخرى مشابهة في نفس العائلة ذات شكل استعلامات `SELECT`). كما أنها تترك دالة `OPENDATASOURCE` الخاصة بـ SQL Server واستدعاء SQLite `ATTACH '<file>' AS x` (مع حذف كلمة DATABASE الأساسية) دون حظر. يمكن لمهاجم قادر على تشكيل استعلامات SQL المولدة بواسطة النموذج اللغوي الكبير (LLM)، سواء بشكل مباشر عبر إدخال المطالبة (prompt input) أو بشكل غير مباشر عبر حقن مطالبات في البيانات التي يستهلكها الـ LLM، قراءة ملفات عشوائية من مضيف PostgreSQL من خلال استعلامات `SELECT` عادية، حتى مع التكوين الافتراضي الصارم للوكيل (`allow_dangerous_operations=False`, `allowed_statement_types=['SELECT']`). تبقى هذه الأحمال الفعالة (payloads) ناجحة عبر قائمة السماح بأنواع الجمل (حيث أن كل منها هو استعلام `SELECT`) وتتجاوز قائمة الحظر بالنماذج النظامية (لأن أسماء الدوال لا تتطابق)، ثم تصل إلى محرك SQLAlchemy النشط عبر دالة `SQLChatAgent.run_query`. يحتوي الإصدار 0.64.0 على تصحيح لهذه المشكلة.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.