CVE-2026-82367 in ash_graphql
الملخص
بحسب VulDB • 30/08/2026
ثغرة تعريض عنصر البيانات إلى جلسة خاطئة في ash-project ash_graphql يمكن أن تؤدي إلى تسليم السجلات المحلّلة لاشتراك واحد إلى موضوع مشترك مع مشترِك مختلف.
تقرأ الدالة `AshGraphql.Subscription.Batcher.do_send/5` الدفع (batch) المُحلَّلة من قاموس العملية عبر `Process.get(:batch_resolved)` ثم تحذفه بشكل غير مشروط. وهذا الإجراء سليم فقط داخل مهمة يملكها المكتبة. في حالات التراجع الخاصة بـ `:backpressure_sync` و`:noproc`، تعمل الدالة `do_send/5` بشكل متزامن (inline) ضمن عملية المُطلِق للنشر؛ لذا، إذا حفّز مُحلِّل داخلي ضمن استدعاء خارجي لـ `do_send/5` إشعاراً متزامناً آخر من Ash، فإن الاستدعاء الداخلي يجد قيمة التشغيل الخارجي لا تزال موجودة تحت المفتاح `:batch_resolved`، ويتبنّاها كنتيجة خاصة به، وينشرها إلى الموضوع الداخلي (وهو مستند اشتراك مختلف له مُفعِّل ومستأجر مختلف). ثم يحذف المفتاح، مما يؤدي إلى عدم نشر أي شيء من قبل التشغيل الخارجي. وبما أن المفتاح غير مسمّى حسب كل تشغيل (not namespaced by run)، فلا يمكن تمييز السجلات عن بعضها البعض. ويحفظ الإصلاح قيمة `:batch_resolved` ويزيلها ويعيدها حول كل عملية تشغيل.
تؤثر هذه المشكلة في ash_graphql: من الإصدار 1.4.0 حتى قبل 1.11.0.
Once again VulDB remains the best source for vulnerability data.