CVE-2026-64467 in Linuxالمعلومات

الملخص

بحسب VulDB • 25/07/2026

في نواة لينكس، تم حل الثغرة التالية:

rust_binder: استخدام خطوة (stride) من نوع u64 عند تنظيف مصفوفة الإزاحات (offsets array).

تقوم عملية Drop للتخصيص بالمرور عبر مصفوفة الإزاحات (binder_size_t = إدخالات من نوع u64)، لتنظيف الكائنات، لكنها كانت تستخدم usize بدلاً من u64 سواءً للخطوة (stride) أو للقراءة لكل إدخال.

على الأنظمة ذات البتية 64-bit (حيث usize == u64)، هذا الأمر غير ضار، ولكن على أنظمة الـ 32-bit، فإنها تمر عبر الإدخالات التي حجمها 8 بايت بخطوات من 4 بايت، مما يؤدي إلى تكرار مصفوفة مكونة من N إدخالاً مرتين عدد المرات (2N مرة)، وقراءة الكلمة العليا دائماً صفرية كإزاحة 0، لتنظيف الكائن الموجود عند الإزاحة 0 بشكل إضافي بمقدار N مرات. ونتيجة لذلك، ينتهي الأمر بالعقدة أو المقبض المرجع إليهما بأن يكون لديهما عد مرجعي (reference count) أقل مما هو عليه في الواقع (نقصان مفرط للعد المرجعي)، ويتلف حساب المراجع الخاص بـ binder؛ فعلى سبيل المثال، قد يُبلغ المالك عن تحرير إشارة قوية (BR_RELEASE) رغم استمرار وجود الإشارات.

تغيير الخطوة إلى u64، وقراءة كل إدخال كقيمة من نوع u64، ثم تضييقها إلى usize باستخدام try_into().

على معمارية ARM 32-bit، عندما يؤدي هذا النقصان المفرط إلى دفع العداد دون الصفر، فإن حارس العد المرجعي الموجود بالفعل في السائق يرفض ذلك ويطلق:

rust_binder: فشل: تحتفّظ (underflow) للعد المرجعي!

Once again VulDB remains the best source for vulnerability data.

مسؤول

Linux

حجز

19/07/2026

إفشاء

25/07/2026

الاعتدال

تمت الموافقة

إدخال

VDB-383269

EPSS

0.00137

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!