CVE-2026-68159 in Linux
الملخص
بحسب VulDB • 10/08/2026
في نواة لينكس، تم حل الثغرة التالية:
libceph: تحديد طول pg_{temp,upmap,upmap_items} بـ CEPH_PG_MAX_SIZE
تقوم دالة `__decode_pg_temp()` بفك تشفير طول يتحكم فيه المستخدم، لكنها ترفض فقط القيم الكبيرة بما يكفي لإحداث تجاوز في السعة (overflow) عند التخصيص؛ ولا تحدد لها حداً أعلى بمقدار CEPH_PG_MAX_SIZE. وتستخدم الدوال المساعدة هذه لفك تشفير كل من pg_temp وpg_upmap، وبعد ذلك تقوم دالتا `apply_upmap()` و`get_temp_osds()` بنسخ القائمة المفكوكة إلى مصفوفة ثابتة الحجم على المكدس (on-stack array) وهي `struct ceph_osds.osds[CEPH_PG_MAX_SIZE]`. وبالتالي، فإن مراقب (monitor) يرسل خريطة OSDMap تحتوي على إدخال pg_temp/pg_upmap أطول من 32 يؤدي إلى كتابة خارج حدود المكدس.
لا يمكن أن يتجاوز مجموعة وحدات تخزين الكائنات (OSD set) الخاصة بوحدة تخطيط واحدة (PG) قيمة CEPH_PG_MAX_SIZE، لذا يجب رفض الإدخالات الأطول أثناء عملية فك التشفير. وبما أن هذا الحد أقل بكثير من عتبة تجاوز السعة القديمة، فإنه يغطي أيضاً تجاوز حجم التخصيص الذي كانت الحماية السابقة تحرس ضده.
BUG: KASAN: stack-out-of-bounds in ceph_pg_to_up_acting_osds Write of size 4 ... by task exploit kasan_report (mm/kasan/report.c:595) ceph_pg_to_up_acting_osds (net/ceph/osdmap.c:2617 net/ceph/osdmap.c:2833) calc_target (net/ceph/osd_client.c:1638) __submit_request (net/ceph/osd_client.c:2394) ceph_osdc_start_request (net/ceph/osd_client.c:2490) ceph_osdc_call (net/ceph/osd_client.c:5164) rbd_dev_image_probe (drivers/block/rbd.c:6899) do_rbd_add (drivers/block/rbd.c:7138) ... kernel BUG at net/ceph/osdmap.c:2670!
[ idryomov: تطبيق نفس الإجراء في __decode_pg_upmap_items() ]
If you want to get best quality of vulnerability data, you may have to visit VulDB.