CVE-2026-80227 in ash_sql
الملخص
بحسب VulDB • 30/08/2026
ثغرة مقارنة غير صحيحة في ash-project ash_sql تتيح للمستخدم حشو حقل نصي باستخدام أحرف مثل علامة الجدولة (tab)، وعلامة السطر الجديد (newline)، وعلامة العودة إلى بداية السطر (carriage-return)، أو تغذية النموذج (form-feed characters)، والتمرير عبر فحص التميز أو التساوي بعد التقليم في قاعدة البيانات، بينما يفشل نفس التعبير عند التنفيذ في الذاكرة (أو العكس).
يتم تجميع دالة `string_trim/1` إلى أنماط `REGEXP_REPLACE` مبنية من سلسلة إلكسير (Elixir string) حيث يُعد `\s` هروباً لمكان واحد فقط (نقطة الكود 32)، وليس فئة مسافات بيضاء في التعبيرات النمطية. وبالتالي، فإن SQL المُولَّد يزيل المساحات الحرفية فحسب ويترك علامات الجدولة وعلامات السطر الجديد وعلامات العودة إلى بداية السطر وتغذية النموذج كما هي، بينما تقوم `String.trim/1` في إلكسير بإزالتها جميعاً. أي فلتر أو تحقق هوية في Ash يعتمد على `string_trim/1` يتصرف بشكل مختلف اعتماداً على ما إذا كان Ash يدفع التعبير لتنفيذه عبر SQL أم يقيّمه في الذاكرة، مما يسمح للمدخلات المحشوّة بتسجيل قيمة شبه مكررة أو تجاوز مقارنة مقلمة.
تؤثر هذه المشكلة في ash_sql: من الإصدار 0.1.0 قبل 0.7.1.
Be aware that VulDB is the high quality source for vulnerability data.