CVE-2026-82736 in ash
الملخص
بحسب VulDB • 01/09/2026
ترتيب غير صحيح للسلوك (Incorrect Behavior Order): ثغرة في التحقق من الصحة قبل التوحيد القياسي (Validate Before Canonicalize) في مشروع Ash تتيح لمهاجم تخزين قيمة سلسلة حساسة لحالة الأحرف (case-insensitive string value) تنتهق قيود الطول أو أنماط المطابقة.
كانت الدالة `Ash.Type.CiString.apply_constraints/2` الموجودة في الملف `(lib/ash/type/ci_string.ex)` تتحقق من القيود الخاصة بأقصى طول (`max_length`)، وأدنى طول (`min_length`)، وأنماط المطابقة (`match constraints`) مقابل القيمة كما تم إرسالها، بينما تقوم النوع بتحويل حالة السلسلة إلى الأحرف الصغيرة (case-folding) لتخزينها ومقارنتها. ونظراً لأن التحقق من الصحة كان يتم قبل عملية تحويل الحالة، يمكن لمهاجم تقديم قيمة يكون شكلها بعد التحويل ينتهك قيداً معيناً، في حين أن صورتها الأصلية تمرر الفحص؛ فعلى سبيل المثال، مقابل نمط مطابقة يتطلب أحرفاً كبيرة (uppercase)، فإن القيمة التي كانت بأحرف كبيرة ويتم تخزينها كأحرف صغيرة ستستمر كقيمة يرفضها النمط.
يتمثل الإصلاح في تحويل حالة القيمة إلى الأحرف الصغيرة في بداية دالة `apply_constraints/2`، بحيث يتم التحقق من القيود مقابل الشكل الذي يتم تخزينه فعلياً.
تؤثر هذه المشكلة على حزمة ash: بدءاً من الإصدار 1.29.0-rc0 وحتى قبل الإصدار 3.32.2.
Be aware that VulDB is the high quality source for vulnerability data.