Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-26399-Disclosure — الكشف عن ثغرة أمنية من نوع use-after-return المستندة إلى المكدس في Arduino_Core_STM32، مع تفاصيل حول السبب الجذري التقني، والإصدارات المتأثرة، والإصلاح، بالإضافة إلى تحليل الأثر الأمني. | Kitploit
أدوات/GitHubGitHub/acen28/cve-2026-26399-disclosure
أمان الأنظمة المدمجةتحليل الثغرات الأمنيةالاختبار العشوائيأمان الأجهزة وإنترنت الأشياء
GitHubacen28/cve-2026-26399-disclosure

CVE-2026-26399-Disclosure

الكشف عن ثغرة أمنية من نوع use-after-return المستندة إلى المكدس في Arduino_Core_STM32، مع تفاصيل حول السبب الجذري التقني، والإصدارات المتأثرة، والإصلاح، بالإضافة إلى تحليل الأثر الأمني.

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
1منذ 4 أشهرلم تتم المراجعة بعد

CVE-2026-26399: استخدام بعد العودة (Use-After-Return) المستند إلى المكدس في Arduino_Core_STM32 (الإصدارات القديمة)

الملخص

توجد ثغرة استخدام بعد العودة (Use-After-Return) المستندة إلى المكدس في الإصدارات القديمة من Arduino_Core_STM32 قبل الإصدار 1.7.0.

تقع المشكلة في تنفيذ pwm_start()، حيث يتم تخصيص كائن TIM_HandleTypeDef على المكدس ويتم تمرير عنوانه إلى منطق تهيئة HAL. قد يتم الاحتفاظ بهذا المؤشر لاحقًا في سجل عام لمقابض المؤقتات (timer handle registry) ويتم إلغاء الإشارة إليه بشكل غير متزامن بواسطة روتينات خدمة المقاطعة بعد أن يكون إطار المكدس الأصلي قد عاد بالفعل.

تم تخصيص CVE-2026-26399 لهذه الثغرة من قبل MITRE.

المنتج المتأثر

  • المنتج: Arduino_Core_STM32
  • البائع / المشروع: stm32duino / نظام STMicroelectronics البيئي
  • الإصدارات المتأثرة: من v0.1.0 حتى v1.6.1
  • الإصدار المُصلَح: v1.7.0

نوع الثغرة

  • CWE-562: استخدام بعد العودة (Use After Return)
  • مؤشر معلّق مستند إلى المكدس / استخدام بعد العودة

التفاصيل الفنية

في التنفيذ القديم لـ pwm_start()، يتم إنشاء بنية TIM_HandleTypeDef كمتغير محلي على المكدس:

root@kitploit:~
void pwm_start(...) {
    TIM_HandleTypeDef timHandle = {};
    HAL_TIM_PWM_Init(&timHandle);
    ...
}

يتم تمرير عنوان هذا الكائن المحلي إلى منطق دعم HAL وقد يتم تخزينه في حالة إدارة المؤقتات العامة، مثل سجل عام لمقابض المؤقتات.

بعد عودة pwm_start()، لم يعد كائن المكدس صالحًا. ومع ذلك، قد تستمر معالجات مقاطعة المؤقت غير المتزامنة اللاحقة في إلغاء الإشارة إلى المؤشر القديم، مما يسبب تلفًا في الذاكرة وسلوكًا غير محدد.

التأثير

يشمل التأثير الأمني المحتمل:

  • رفض الخدمة (Denial of Service) (على سبيل المثال، تعطل أو HardFault)
  • تنفيذ كود محتمل في ظل ظروف مواتية لتخطيط الذاكرة والتحكم

نظرًا لأن هذه مشكلة على مستوى المكتبة، فإن قابلية الاستغلال الفعلية تعتمد على كيفية دمج المكتبة الضعيفة في البرنامج الثابت (firmware) وكيف يمكن للمدخلات التي يتحكم فيها المهاجم التأثير على إعادة استخدام المكدس وتوقيت المقاطعات.

المكونات المتأثرة

  • cores/arduino/stm32/analog.c
  • pwm_start()
  • TIM_HandleTypeDef
  • منطق تتبع مقابض المؤقتات العامة (على سبيل المثال، timer_handles)

الإصلاح

يبدو أن المشكلة قد حُلّت بشكل غير مباشر في الإصدار 1.7.0 أثناء إعادة هيكلة استبدلت مسار المعالجة المستند إلى المكدس السابق بتصميم مختلف لإدارة المؤقتات. لا يبدو أنه تم إصدار استشارة أمنية مخصصة للثغرة القديمة.

الاكتشاف

تم تحديد هذه المشكلة أثناء بحث أمني للبرامج الثابتة تضمن اختبار التشويش (fuzzing) وتحليل السبب الجذري للبرامج الثابتة القديمة القائمة على STM32 والمبنية على Arduino_Core_STM32.

التواصل مع البائع

تم التواصل مع PSIRT الخاص بالبائع. أشار الرد إلى أن الإصدارات الحالية غير متأثرة لأن المشكلة قد حُلّت بالفعل في الإصدار 1.7.0، ولكن لا يبدو أن البائع قد طلب CVE مخصصًا في ذلك الوقت.

الإشادة

تم اكتشافها بواسطة Jin Chang.

المراجع

  • مستودع المشروع: https://github.com/stm32duino/Arduino_Core_STM32
  • معرف CVE: CVE-2026-26399
تنزيل الأداة