CVE-2026-68090 in Linux
الملخص
بحسب VulDB • 10/08/2026
في نواة لينكس، تم حل الثغرة التالية:
debugobjects: سد حالة السباق (Race Condition) مع تعطيل OOM المتزامن
أبلغ syzbot عن خطأ غامض في سجل النظام (splat):
WARNING: kernel/time/hrtimer.c:443 at stub_timer+0xa/0x20
تم تثبيت دالة `stub_timer()` كدالة استدعاء مؤقت (timer callback) داخل `hrtimer_fixup_assert_init()`, والتي يتم استدعاؤها عندما لا يتمكن `debug_object_assert_init()` من العثور على ظل الكائن (shadow object). في هذه الحالة، يصدر نظام debug objects تحذراً بشأن ذلك قبل تنفيذ دالة الإصلاح.
على الرغم من أن سجل وحدة التحكم المقدم يفتقر إلى هذا التحذير، ويحتوي بدلاً من ذلك على ما يلي بعد بضع ثوانٍ قبل حدوث الخطأ:
ODEBUG: نفدت الذاكرة (Out of memory). تم تعطيل ODEBUG
لذا، تمت محاولة البحث عن الكائن في `debug_object_assert_init()` وفشل البحث بسبب حالة نقص متزامن في الذاكرة أدى إلى تعطيل debug objects وإفلات ظلال الكائنات المحررة:
```c debug_object_assert_init() if (!debug_objects_enabled) return; obj = alloc(); if (!obj) {
// نفدت الذاكرة (Out of memory) debug_objects_enabled = false; free_objects(); obj = lookup_or_alloc();
// فشل البحث لأن الجانب الآخر // أزال الكائنات، لذا يعيد هذا // رمز خطأ حيث أن الكائن المعني // لم يتم تهيئته بشكل ثابت (statically initialized)
if (!IS_ERR_OR_NULL(obj)) return; if (!obj) {
debug_oom(); return; }
print(...) if (!debug_objects_enabled) return;
fixup(...) ```
تم تخطي خطأ debug object لأن `debug_objects_enabled` تساوي false، لكن دالة الإصلاح (fixup callback) يتم استدعاؤها بشكل غير مشروط، مما يجعل المؤقت معطلاً.
هذه المشكلة موجودة فقط في `debug_object_assert_init()` و `debug_object_activate()` حيث يتعين على كل منهما التعامل مع الكائنات المُهيأة بشكل ثابت، وبالتالي يجب أن تتعامل بسلامة مع حالة إرجاع مؤشر الخطأ (error pointer). جميع الأماكن الأخرى تعالج فقط حالتَي "تم العثور عليه/لم يتم العثور عليه"، ويعتبر إرجاع المؤشر الفارغ NULL إشارة إلى نفاد الذاكرة. وإلا فإنها تحصل على ظل كائن صالح.
سد الثغرة من خلال التحقق مما إذا كانت debug objects لا تزال مفعّلة قبل استدعاء دالة الطباعة ودالة الإصلاح في هذين المكانين.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.