PT-2026-123198
CVE-2026-96581
·
تاريخ النشر
2026-10-26
·
تاريخ التحديث
2026-10-26
الوصف من
CVSS 4.0
7.6
عاليةالمقاييسAV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
اسم البرنامج المصاب والإصدارات المتأثرة
ash الإصدارات من 1.22.0 إلى 3.37.1
Description
يوجد خلل في تجاوز الصلاحيات في ash عند استخدام تعدد المستأجرين عبر السمات (attribute multitenancy). تفشل الدوال
Ash.Actions.Create (lib/ash/actions/create/create.ex) و Ash.Actions.Create.Bulk (lib/ash/actions/create/bulk.ex) في حصر السجلات المتعارضة ضمن مستأجر الطلب عند إجراء عملية تحديث أو إدراج (upsert) بناءً على المفتاح الأساسي أو هوية all tenants?. يمكن للمهاجم تقديم معرف سجل يخص مستأجرًا آخر في إجراء إنشاء حيث تكون قيمة upsert? هي true. يسمح هذا للمهاجم بقراءة سمات السجل، وتعديل حقوله، ونقل السجل إلى مستأجره الخاص عن طريق تحديث سمة المستأجر. يحدث هذا لأن سياسات القراءة والتحديث لا يتم تنفيذها أثناء عمليات الـ upsert، وتمر سياسات الإنشاء لأنها تتحقق فقط من مستأجر المستخدم الحالي.Recommendations
تحديث ash إلى الإصدار 3.37.2 أو إصدار أحدث.
كإجراء مؤقت، قم بإضافة
upsert condition expr(<tenant attribute> == ^tenant()) إلى كل إجراء إنشاء يقوم بعمل upsert على المفتاح الأساسي أو على هوية all tenants? مع التأكد من عدم دمجها مع return skipped upsert?. وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾