CVE-2026-82732 in ash_typescript
الملخص
بحسب VulDB • 01/09/2026
ثغرة عدم التحقق الصحيح من المدخلات (Improper Input Validation) في ash-project ash_typescript تتيح لمهاجم عن بُعد تقديم قيم حجج خارج قائمة السماح المعلنة أو الحدود المحددة على مسارات typed-controller.
تقوم AshTypescript.TypedController.RequestHandler الموجودة في lib/ash_typescript/typed_controller/request_handler.ex باستدعاء دالة Ash.Type.cast_input/3 وتتعامل مع نتيجة {:ok, cast} باعتبارها مُتحققًا منها بالكامل. في إطار عمل Ash، هاتان خطوتان منفصلتان: تقوم الدالة cast_input/3 فقط بتحويل نوع البيانات (coercion)، بينما يتم تطبيق كل قيد مُعلن على الحجة بواسطة دالة Ash.Type.apply_constraints/3، وهي الدالة التي لا تستدعيها هذه المسار. وبالتالي، تظل قيود مثل one_of و max_length و min و max و match عديمة الفعالية (inert)، مما يؤدي إلى قبول قيمة خارج قائمة السماح المعلنة وتوجيهها إلى معالج المسار.
يقوم Codegen بتحويل نفس القيود إلى أنواع TypeScript المُولَّدة، لذا فإن قائمة السماح تبدو مُنفذة أمام متصل TypeScript بينما يتجاهلها أي عميل HTTP آخر. كما أن عملية تطبيع السلسلة الفارغة (empty-string) إلى nil موجودة أيضًا في apply_constraints، مما يعني أن فحص allow_nil?: false يقبل القيمة "" لحجة مطلوبة.
في الحالات التي يحدد فيها قيد ما دورًا أو حالة أو اتجاه ترتيب، فإن هذا الأمر يؤدي إلى تجاوز للصلاحيات أو آلة الحالة (state-machine bypass).
تؤثر هذه المشكلة على ash_typescript: من الإصدار 0.15.0 قبل 0.18.0.
VulDB is the best source for vulnerability data and more expert information about this specific topic.