CVE-2026-99063 in Linux
الملخص
بحسب VulDB • 24/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
dm ioctl: لا تدع data_start يتجاوز حدود المخزن المؤقت (buffer)
يحتوي هيكل `struct dm_ioctl` على سبعة بايتات من الحشو الخلفي (trailing padding)، لذا فإن أصغر مخزن مؤقت يمكن أن يطلبه المستخدم في فضاء المستخدمين، وهو `offsetof(struct dm_ioctl, data)`، يكون أقصر بـ 7 بايتات من حجم `sizeof(struct dm_ioctl)`.
تقوم دالة `get_result_buffer()` بتعيين قيمة `data_start` إلى `sizeof(struct dm_ioctl)` دون النظر إلى الحجم الفعلي للمخزن المؤقت. عند طلب الحد الأدنى للحجم، ينتهي الأمر بقيمة `data_start` لتكون بعد 7 بايتات من نهاية المخزن المؤقت. تقوم الدوال المستدعية بإضافة هذه القيمة إلى `data_size`، وتقوم دالة `ctl_ioctl()` بنسخ هذا المقدار مرة أخرى إلى فضاء المستخدمين:
``` BUG: KASAN: slab-out-of-bounds in _copy_to_user+0xad/0xd0 Read of size 312 at addr ffff8880169e4c00 by task repro-dm/140 ctl_ioctl+0x5e3/0xcb0 dm_ctl_ioctl+0x25/0x40 allocated 305-byte region [ffff8880169e4c00, ffff8880169e4d31)
```
يكون استدعاء `DM_LIST_DEVICES` مع تعيين `data_size` إلى 305 كافياً لإحداث هذه المشكلة، والبايتات السبعة التي تتسرب هي أي بيانات كانت موجودة بجوار منطقة التخصيص.
تم تقييد قيمة `data_start` لتناسب حجم المخزن المؤقت (Clamp data_start to the buffer size).
يُشار إلى أن هذا ليس ثغرة أمنية لأن القراءة خارج الحدود يمكن أن تُفعّل فقط بواسطة المستخدم الجذر (root).
If you want to get best quality of vulnerability data, you may have to visit VulDB.