Jisung Chae

#14194من 60,387
22.4إجمالي CVSS
الثغرات · 4
منخفضة
1
متوسطة
2
عالية
1
PT-2026-71309
2026-08-12
7.5
CVE-2026-67579
Ash
Ash
يمكن لمهاجم غير مصدق عليه حقن تعبير تصفية باستخدام مؤشر ترقيم صفحات مزور لمجموعة المفاتيح. يحدث هذا لأن إجراءات القراءة التي تستخدم ترقيم الصفحات باستخدام مجموعة المفاتيح تقوم بفك تشفير مؤشرات `page[:after]` أو `page[:before]` التي يوفرها العميل في الدالة `decode values/2` الموجودة في `lib/ash/page/keyset.ex` باستخدام `non executable binary to term/2` مع `[:safe]`. ورغم أن هذا الحاجز يمنع دخول الذرات (atoms) والدوال (funs) والمنافذ (ports) الجديدة، إلا أنه لا يمنع الهياكل (structs) المبنية من ذرات تم تخزينها مسبقًا في تطبيق قيد التشغيل. ونتيجةً لذلك، يمكن إدراج تعبير `%Ash.Query.Call{}` الذي تم فك تشفيره في مرشح مجموعة المفاتيح كقيمة مقارنة في `do filters/4` وتقييمه. نظرًا لأن المؤشر يتجاوز ماكرو `Ash.Expr`، يفشل وقت التشغيل في تطبيق بوابة `private?/public?`. يختلف التأثير حسب طبقة البيانات: تسمح AshPostgres بحقن SQL، بينما تسمح طبقات البيانات ETS وSimple بتقييم التعبير أثناء العملية كدعوة دالة عشوائية.
PT-2026-69308
2026-08-09
5.9
CVE-2026-69659
Ash
Ash
توجد مشكلة استهلاك غير خاضع للرقابة للموارد، حيث يمكن للمهاجم استنفاد ذاكرة العقدة باستخدام مؤشر ترقيم صفحات مصمم خصيصًا لمجموعة المفاتيح. تعمل إجراءات القراءة التي تستخدم ترقيم صفحات مجموعة المفاتيح على فك تسلسل المؤشرات المقدمة من العميل عبر الدالة `decode values/2` الموجودة في `lib/ash/page/keyset.ex`. تقوم هذه العملية بفك تشفير القيمة باستخدام base64 وتمريرها إلى `:erlang.binary to term/2` دون تحديد الحد الأقصى للحجم. ونظرًا لأن تنسيق المصطلح الخارجي لـ Erlang يدعم الحمولات المضغوطة بواسطة zlib، فقد يقوم برنامج فك التشفير بتضخيم مؤشر صغير إلى عشرات الميغابايت من ذاكرة الكومة. وبما أن البرنامج يقوم فقط بتشفير المؤشرات كبيانات غير مضغوطة، فإن برنامج فك التشفير يقبل أشكال المصطلحات التي لا ينتجها برنامج التشفير. يمكن أن تؤدي الطلبات المتزامنة المتعددة إلى تراكم هذه التخصيصات وتسبب إنهاء عمل العقدة. ويتضمن ذلك المتغيرين `page[:after]` و`page[:before]`.