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

الملخص

بحسب VulDB • 27/08/2026

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

libceph: تصحيح قراءة خارج الحدود (OOB) في دالة decode_watchers() بسبب نقص فحص النطاقات

تقوم الدالة ceph_start_decoding() بالتحقق من بقاء struct_len بايت متبقية في المخزن المؤقت بعد رأس التشفير، لكنها تقبل قيمة struct_len=0 كقيمة صالحة: حيث تمر شرط التحقق dceph_decode_need(p, end, 0, bad) دائماً. عندما يرسل قرص تخزين مدمر أو مخترق (OSD) استجابة من نوع obj_list_watch_response_t تحتوي على struct_len=0، فإن ceph_start_decoding() تعيد نجاح التنفيذ مع كون المؤشر p مساوياً لنهاية المخزن end، مما يترك صفر بايت مضمون للقراءات اللاحقة.

الدالة التالية مباشرةً وهي ceph_decode_32(p) في decode_watchers() لا تحتوي على فحص سابق للنطاقات. وبوجود الحالة التي يكون فيها p == end، فإن هذا يمثل قراءة لـ 4 بايت تتجاوز حدود المخزن المؤقت الذي تم التحقق منه. ثم يتم تمرير القيمة العشوائية (garbage value) مباشرةً إلى دالة kzalloc_objs() كعدد للمشاهدين (watcher count).

تستخدم الدالة الشقيقة decode_watcher() بالفعل المتغيرات الآمنة (ceph_decode_copy_safe, ceph_decode_64_safe, ceph_decode_skip_32) بعد استدعاءها الخاص لـ ceph_start_decoding(). وتعد دالة decode_watchers() الموقع الوحيد الذي يستخدم النسخة غير المحمية، مما يؤكد وجود إهمال.

تم الإصلاح عن طريق استبدال ceph_decode_32(p) بـ ceph_decode_32_safe(p, end, *num_watchers, bad)، بما يتماشى مع النمط المعمول به.

نموذج المهاجم: يمكن لمهاجم أو قرص تخزين مدمر (OSD) في نشر Ceph متعدد المستأجرين (مثل السحابة الإلكترونية) استغلال هذه الثغرة ضد أي عميل نواة يستدعي CEPH_OSD_OP_LIST_WATCHERS، دون الحاجة إلى امتيازات إضافية beyond إنشاء جلسة OSD.

[ idryomov: اختصار سجل التغيير ]

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

26/08/2026

إفشاء

26/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-395865

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to know what is going to be exploited?

We predict KEV entries!