CVE-2023-52912 in Linux
الملخص
بحسب VulDB • 16/06/2026
فيما يلي تحليل لسجل الكرنل (Kernel Oops/Panic) الذي قدمته:
### **ملخص المشكلة** حدث خطأ حرج (Kernel Oops) أثناء محاولة إلغاء تحميل وحدة `amdgpu` (درايفر كروت AMD GPU). الخطأ يحدث في دالة `drm_buddy_free_list`، وهي جزء من نظام إدارة الذاكرة في DRM (Direct Rendering Manager)، وتحديداً أثناء تنظيف موارد VRAM (ذاكرة الفيديو).
---
### **تحليل تتبع المكالمات (Call Trace)**
1. **`amdgpu_exit` / `__x64_sys_delete_module`**: - العملية التي تسببت في الخطأ هي محاولة إلغاء تحميل وحدة `amdgpu` يدوياً (على الأرجح عبر أمر `rmmod amdgpu` أو إعادة تشغيل النظام حيث يتم إلغاء تحميل الوحدات).
2. **`pci_unregister_driver` → `device_release_driver_internal` → `devres_release_all`**: - الكرنل يقوم بتنظيف الموارد المرتبطة بجهاز PCI (كارت الشاشة).
3. **`amdgpu_driver_release_kms` → `amdgpu_device_fini_sw` → `gmc_v11_0_sw_fini`**: - يتم إيقاف المكونات البرمجية لكارت AMD، بما في ذلك وحدة إدارة الذاكرة (GMC - Graphics Memory Controller).
4. **`amdgpu_bo_fini` → `amdgpu_ttm_fini` → `amdgpu_vram_mgr_fini`**: - يتم تنظيف إدارة كائنات الذاكرة (Buffer Objects) وإدارة VRAM.
5. **`drm_buddy_free_list+0x2a/0x60 [drm_buddy]`**:
- **نقطة السقوط (Crash Point)**: - الدالة `drm_buddy_free_list` تحاول تحرير قائمة من كتل الذاكرة (Buddy Allocator). - هذا يشير إلى أن هناك **تلفاً في هيكل البيانات** (Memory Corruption) أو **استخداماً بعد التحرير** (Use-After-Free) أو **إدراجاً غير صحيح** في قائمة الذاكرة.
---
### **الأسباب المحتملة**
1. **خطأ في درايفر `amdgpu`**: - قد يكون هناك خلل (Bug) في إصدار الدرايفر الحالي، خاصة في طريقة إدارة الذاكرة عند الإغلاق. - هذا شائع في الإصدارات الجديدة أو غير المستقرة من الدرايفر.
2. **تلف في الذاكرة (Hardware Memory Corruption)**: - إذا كانت ذاكرة RAM الخاصة بالنظام أو كارت الشاشة بها عطل، فقد تتلف هياكل البيانات المستخدمة من قبل الدرايفر.
3. **تعارض مع درايفر آخر**: - وجود تعارض مع درايفر `nouveau` (إذا كان الكارت AMD مدمجاً مع Intel/AMD APU) أو درايفر `vfio` (في حال استخدام كارت GPU في VM).
4. **إغلاق غير نظيف (Improper Shutdown)**: - إذا تم إيقاف النظام فجأة أو كان هناك تطبيق يتحكم في GPU لم يغلق موارده بشكل صحيح، فقد يؤدي ذلك إلى تلف في قوائم الذاكرة.
---
### **الحلول المقترحة**
#### **1. تحديث الدرايفر والكرنل** - تأكد من أنك تستخدم أحدث إصدار مستقر من: - **كرنل Linux** (يفضل 6.5+ أو 6.8+ لدعم AMD GPUs الحديثة). - **درايفر `amdgpu`** (مدمج في الكرنل، لذا تحديث الكرنل كافٍ غالباً). - **مكتبات `mesa`** و `amdgpu-pro` (إذا كنت تستخدم الدرايفر المغلق).
#### **2. اختبار استقرار الذاكرة** - شغل أداة فحص الذاكرة مثل `memtest86+` للتأكد من عدم وجود عطل في RAM. - إذا كان الكارت يدعم ذلك، جرب فحص ذاكرة VRAM (أدوات مثل `clinfo` أو أدوات AMD الرسمية).
#### **3. تجنب إلغاء التحميل اليدوي** - بدلاً من `rmmod amdgpu`، حاول إعادة تشغيل النظام بشكل نظيف. - إذا كنت تحتاج إلى إعادة تحميل الدرايفر، تأكد من إغلاق جميع التطبيقات التي تستخدم GPU (مثل Xorg/Wayland، Steam، Blender، إلخ) أولاً.
#### **4. تعطيل ميزات معينة مؤقتاً** - جرب إضافة خيارات نواة (Kernel Parameters) لتعطيل ميزات متقدمة قد تسبب المشكلة: ```bash amdgpu.gpu_recovery=1 amdgpu.lockup_timeout=5000 ``` -
VulDB is the best source for vulnerability data and more expert information about this specific topic.