Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
vbox-lsilogic-sas-config — VirtualBox 7.2.20 - حرجة - محلية - الخلط بين الأنواع / قراءة وكتابة عشوائية - SAS1068 CONFIG SCSI-SPI overlay | Kitploit
أدوات/GitHubGitHub/abraxas/vbox-lsilogic-sas-config
تحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةالمحاكاة الافتراضية للأمانالأوراق والأبحاثاستغلال الملفات الثنائية
GitHubabraxas/vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

VirtualBox 7.2.20 - حرجة - محلية - الخلط بين الأنواع / قراءة وكتابة عشوائية - SAS1068 CONFIG SCSI-SPI overlay

عرض المستودع
11منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Abraxas Labs - vbox-lsilogic-sas-config

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

الفئة: خلط الأنواع / قراءة وكتابة عشوائية الوصول: محلي (ضيف)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)

تعامل SAS1068 MPT CONFIG صفحة SCSI-SPI Port 0 كصفحة بحجم 12 بايت. على SAS، تلك الصفحة هي النصف الآخر من اتحاد (union): pManufacturingPage7 بالإضافة إلى cbManufacturingPage7. يؤدي CONFIG READ من الضيف إلى تسريب مؤشر الكومة عبر DMA. أما CONFIG WRITE فيزرع المؤشر والحجم. ثم تنسخ صفحة التصنيع 7 عبر المؤشر المزروع.

يحصل ring3 في الضيف على جهاز SAS1068 متصل (PDM LsiLogicSas، PCI 1000:0054) على قراءة/كتابة عشوائية في عملية VM. ذلك كومة VirtualBoxVM / VBoxHeadless، وليس هروبًا إلى نواة المضيف.

المعرّفلا يوجد CVE بعد
الفئةخلط الأنواع / قراءة وكتابة عشوائية
الوصولمحلي (ضيف)
CWECWE-843، CWE-822
CVSSحرج: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
المنتجVirtualBox OSS
المتأثر7.2.20 (f2792cf44)
المتطلباتجهاز SAS1068 متصل (PDM LsiLogicSas، PCI 1000:0054)
الترخيصGNU Affero GPL v3.0
المختبرأداة اختبار المصدر عبر loopback

ما يمكن للمهاجم فعله

الطريقة: يقوم ring3 في الضيف ببرمجة جرس MMIO الخاص بـ SAS1068 أو طابور الطلبات (request FIFO) باستخدام MPT_MESSAGE_HDR_FUNCTION_CONFIG (0x04)، ونوع الصفحة SCSI-SPI Port 0 (0x03). يستدعي الإرسال (Dispatch) دائمًا دالة جلب SPI. فقط EXTENDED مقيّد بـ SAS. دالة جلب سمة الصفحة معلّقة (commented out)، لذا تظل صفحة Readonly Port 0 قابلة للكتابة. صفحة SPI Port 0 محزومة في 12 بايت وتتراكب مع SasPages.pManufacturingPage7 (8) بالإضافة إلى cbManufacturingPage7 (4).

الصلاحيةالنوعالحالةما تمنحه
CONFIG SCSI-SPI Port 0 READاستطلاعمُثبت مختبريًاDMA لمؤشر كومة عملية VM pManufacturingPage7 وحجمه إلى ذاكرة الضيف. مدخل لـ ASLR.
CONFIG SCSI-SPI Port 0 WRITEسلامةمُثبت مختبريًازرع مؤشر وحجم يختارهما الضيف فوق حقول SAS تلك
manufacturing page 7 CONFIG READسلامةمُثبت مختبريًانسخ بايتات المضيف من العنوان المزروع إلى GPA الخاص بالضيف (VBOX-LSILOGIC-SAS-CONFIG-WITNESS)
manufacturing page 7 CONFIG WRITEسلامةمستنتج من نفس دالة الجلبنسخ بايتات الضيف إلى العنوان المزروع (كتابة عشوائية في VirtualBoxVM)
صفحات SPI لـ Port 1 / Device 0استطلاع / سلامةتراكب مستنتجPort 1 يسرّب/يزرع pSASIOUnitPage0؛ Device 0 page 0 يصيب paPHYs؛ Device 0 page 1 يصيب pSASDeviceHead
مؤشر مزروع عشوائيإتاحةمستنتجتعطيل عملية VM عند الوصول التالي لصفحة SAS أو عند lsilogicR3ConfigurationPagesFree

مغلق ومجاور:

  • نواة المضيف
  • أجهزة VM أخرى
  • VBoxSVC
  • LSI53C1030 SPI الافتراضي في ضيف Windows (SpiPages هو التخطيط الحقيقي؛ خلط الأنواع هذا يحتاج SAS1068)
  • صفحات SAS EXTENDED على متحكم SPI (VERR_NOT_FOUND)
  • رمز تحصين Windows / AppContainer (هذه كومة عملية VM، وليست تجاوزًا لصندوق العزل)

هذه قراءة/كتابة عشوائية في عملية VM، وليست هروبًا إلى نواة المضيف. لا يزال مستخدم المضيف الكامل بحاجة إلى بقايا تحصين. لم أقرنها بكتابة 3D متبقية: ثغرة VMSVGA DX11 UAF (d691aa68) مغلقة على هذا الإصدار المثبّت.

لا Guest Additions. لا 3D. لا VRDP. ليس PUEL. يكفي ring3 ضيف عدائي؛ ولا حاجة إلى برنامج التشغيل المدمج mpt/mptsas.

كيف وجدتها

جلستُ على OSS 7.2.20 بعد تحديث CPU لشهر سبتمبر 2026 وتتبّعتُ LsiLogic MPT CONFIG. تسريب reply-stack الصامت لعام 2026 مُغلق بالفعل: 122c6880 يقوم بـ RT_ZERO لـ MptReplyUnion عند خطأ SCSI I/O. كنتُ أبحث عن بقية من تلك الفئة، لا عن ذلك المصب.

البقية عبارة عن union، وليست ردًّا على المكدس:

union {
    MptConfigurationPagesSpi SpiPages;
    MptConfigurationPagesSas SasPages;
} u;  /* DevLsiLogicSCSI.h:3323 */

SAS alloc يملأ مؤشرات المضيف SasPages ولا يشغّل تهيئة صفحة SPI أبدًا. لا يحتوي getter منفذ SPI في DevLsiLogicSCSI.cpp:2795 على فحص enmCtrlType. حالات SPI في إرسال CONFIG غير مقيّدة. getter خاصية الصفحة معلّق في cpp:3159. صفحة التصنيع 7 في cpp:2701 مقيّدة بـ SAS، وهو المسار المقصود، وتقوم بإلغاء مرجعية pManufacturingPage7 دون فحص NULL. هكذا يتحول READ/WRITE من نوع SPI على المنفذ 0 إلى تسريب مؤشر SAS وزرعه.

المنعطفات الخاطئة المسجّلة سابقًا: إعادة تقديم 122c6880؛ التعامل مع LSI53C1030 الافتراضي على أنه هذا العلة؛ تضخيم انهيار مؤشر عشوائي إلى هروب من نواة المضيف؛ تشغيل VM حيّة بينما الطبقة المتراكبة المعبأة كافية. المسرح: reverse shell. الحكم هو بيانات صفحة CONTROL الوهمية، ثم تسريب/زرع/قراءة عشوائية لـ VBOX-LSILOGIC-SAS-CONFIG-WITNESS.

المختبر

cd lab
./run.sh

أو python3 vbox-lsilogic-sas-config-Abraxas-Labs.py. مصدر تجهيز بنى pin. لا يتم إقلاع VirtualBox. مشروع Compose باسم vbox-lsilogic-sas-config، network_mode: none. لا تربط شيئًا.

CONTROL: قراءة overlay على المنفذ 0 من نوع SPI هي بيانات صفحة وهمية، وليست مؤشر heap الخاص بصفحة التصنيع 7.

SAS مرتبك: قراءة المنفذ 0 تسرّب pManufacturingPage7 المطابق لـ calloc. كتابة المنفذ 0 تزرع مؤشر مخزن مؤقت شاهد ثانٍ + الحجم. getter صفحة التصنيع 7 مع قراءة CONFIG ينسخ الشاهد إلى مصفوفة GPA الخاصة بالضيف.

SUCCESS vbox-lsilogic-sas-config leak=yes plant=yes arb-read=yes VBOX-LSILOGIC-SAS-CONFIG-WITNESS

الإصلاح

قيّد أنواع صفحات SCSI-SPI على enmCtrlType == LSILOGICCTRLTYPE_SCSI_SPI. أعد فحص سمة الصفحة بحيث تبقى Readonly Port 0 للقراءة فقط. تحقق من pManufacturingPage7 (وغيرها من مؤشرات SAS) مقابل NULL قبل إلغاء الإشارة. أوقف تراكب SpiPages وSasPages في اتحاد واحد.

المراجع

  • github.com/VirtualBox/virtualbox وسم v7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
  • DevLsiLogicSCSI.h الاتحاد عند 3323؛ حجم SPI Port 0 هو 12 عند 2251
  • DevLsiLogicSCSI.cpp تخصيص SAS عند 619؛ دالة جلب manufacturing عند 2701؛ دالة جلب SPI Port عند 2795؛ سمة الصفحة معلّقة عند 3159؛ CONFIG READ/WRITE عند 3293
  • شقيق مغلق، وليس هذا الـ sink: 122c6880 (مكدس خطأ الإدخال/الإخراج SCSI في MptReplyUnion)
تنزيل الأداة