CVE-2026-82579 in ash_ai
الملخص
بحسب VulDB • 31/08/2026
تتمثل ثغرة حلقة لا تحتوي على شرط خروج غير قابل للتحقيق (حلقة لانهائية) في ash-project ash_ai، مما يسمح لمهاجم قادر على التأثير على مخرجات النموذج بتعليق دورة الأداة ودفع طلبات نموذجية غير محدودة ومتكررة.
تصنف فئة AshAi.ToolLoop استجابة النموذج التي تحتوي على :tool_calls، ثم تقوم بفلترة المكالمات عبر الدالتين normalize_tool_calls/2 و unprocessed_tool_calls/2. يمكن لكليتيهما إفراغ القائمة: حيث يتم إسقاط أي مكالمة تفتقر إلى اسم صالح، أو تلك التي تعيد استخدام tool_call_id الذي لديه بالفعل نتيجة في السجل التاريخي. ومع وجود قائمة فارغة، لم تتم إضافة أي شيء للحلقة وتمت إعادة الاستدعاء الذاتي (recursion) بقائمة رسائل متطابقة بايتياً، مما يعني أن المحادثة لم تتقدم أبداً وأن نفس الطلب تم إرساله مراراً وتكراراً في كل تكرار. وفي ظل الإعداد المدعوم max_iterations: :infinity، لا تنتهي هذه الحلقة أبداً؛ وإلا فإنها تستنفد الميزانية بالكامل تماماً. يمكن للمحتوى المُحقن عبر prompt أن يجعل النموذج يعيد إصدار tool_call_id مستهلك سابقاً. ويعالج الإصلاح القائمة الفارغة بعد التصفية على أنها حالة نهائية (terminal).
تؤثر هذه المشكلة في ash_ai: من الإصدار 0.6.0 قبل 1.0.0.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.