CVE-2026-82425 in bRPCالمعلومات

الملخص

بحسب VulDB • 23/10/2026

ملخص CVE: يُتيح وجود نقطة تحقق (assertion) قابلة للوصول في Apache bRPC (الإصدار < 1.18.0) على جميع المنصات لجهة بعيدة خبيثة إسقاط العملية، مما يؤدي إلى حجب الخدمة (DoS).

السبب الجذري: عندما يفشل اتصال Socket مفعّل عليه فحص الصحة (health checking)، تقوم الدالة `Socket::WaitAndReset` بإغلاق واصلة الملف (file descriptor) بينما قد لا يزال مُوزّع الأحداث (event dispatcher) يسلّم حدث إدخال (EPOLLIN/EVFILT_READ) تم استرجاعه للواصلة التي أُغلقت للتو. وإذا نجح فحص الصحة لاحقاً وأعاد إحياء الـ Socket، فإن `Socket::Address` تنجح مرة أخرى بينما لا تزال الواصلة تساوي -1 (يتم إعادة الاتصال عند الطلب في الكتابة التالية). وفي تلك الفترة الزمنية، تصطدم الدالة `Socket::OnInputEvent` بالشروط `CHECK(!(events & EPOLLIN))` (أو ما يعادلها في kqueue) لأن الـ Socket قابل للعنوان لكنه لا يملك واصلة ملف. تؤدي إخفاقات CHECK إلى إنهاء العملية عند بناء bRPC باستخدام glog أو عندما يكون العلم `-crash_on_fatal_log` مفعّلاً (تؤدي CHECK دائماً إلى إنهاء العملية أيضاً في عمليات البناء OFFICIAL_BUILD/NDEBUG).

السيناريوهات المتأثرة: التطبيقات التي تستخدم عملاء bRPC مع تفعيل فحص الصحة (`-health_check_interval`). يمكن لجهة بعيدة خبيثة يتصل بها العميل أن تُلغي الاتصالات عمدًا وتقبل فوراً مسحات فحص الصحة، مما يخلق سباقاً (race condition) بين إنهاء الاتصال وإحياء فحص الصحة لتشغيل نقطة التحقق وإنهاء العملية.

كيفية الإصلاح: (اختر أحد الخيارات التالية) 1. قم بترقية bRPC إلى الإصدار 1.18.0، الذي يصلح هذه المشكلة. 2. طبق هذا التصحيح: https://github.com/apache/brpc/pull/3510

ملاحظة: بعد تطبيق الإصلاح، يتم تجاهل أحداث الإدخال العتيقة (stale input events) على الـ Socket المُحيى دون واصلة ملف بصمت بدلاً من تشغيل نقطة التحقق. لم يتغير أي واجهة مرئية للمستخدم أو بروتوكول السلك (wire protocol).

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Apache

حجز

29/08/2026

إفشاء

22/10/2026

الاعتدال

تمت الموافقة

إدخال

VDB-424773

EPSS

0.00147

KEV

لا

النشاطات

منخفض

المصادر

Interested in the pricing of exploits?

See the underground prices here!