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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-10036-speechbrain-rce — # SpeechBrain < 1.1.1 — تنفيذ التعليمات البرمجية عن بُعد (RCE) عبر بيانات نقاط التحقق (checkpoint metadata) من خلال تحليل غير آمن لملف CKPT.yaml بواسطة PyYAML. | Kitploit
أدوات/GitHubGitHub/saiteja-erukude/cve-2026-10036-speechbrain-rce
تحليل الثغرات الأمنيةتحليل الكودالاستغلالالأوراق والأبحاثالتعلم والتعليم
GitHubsaiteja-erukude/cve-2026-10036-speechbrain-rce

CVE-2026-10036-speechbrain-rce

# SpeechBrain < 1.1.1 — تنفيذ التعليمات البرمجية عن بُعد (RCE) عبر بيانات نقاط التحقق (checkpoint metadata) من خلال تحليل غير آمن لملف CKPT.yaml بواسطة PyYAML.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-10036: تنفيذ تعليمات برمجية عشوائية في SpeechBrain عبر تحليل CKPT.yaml

الخطورة: عالية، CVSS 4.0 8.7، CVSS 3.1 8.8 (مُعيَّنة بواسطة VulnCheck، الجهة المانحة لمعرّفات CVE)

المتجه (v4.0): CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

المتجه (v3.1): CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

المتأثر: SpeechBrain < 1.1.1

تم الإصلاح في: 1.1.1 / الالتزام 22a6166

CWE: CWE-502 (إلغاء تسلسل البيانات غير الموثوقة)

تم اكتشافه والإبلاغ عنه بواسطة: Sai Teja Erukude

تاريخ النشر: 27 أغسطس 2026


الملخص

يستخدم SpeechBrain قبل الإصدار 1.1.1 محمّل PyYAML غير الآمن عند تحليل بيانات وصف نقطة الاستعادة (checkpoint) الخاصة بـ CKPT.yaml أثناء استعادة نقاط الاستعادة.

يمكن للمهاجم القادر على توفير أو تعديل دليل نقطة استعادة SpeechBrain أن يضع ملف CKPT.yaml خبيثًا داخل دليل نقطة استعادة CKPT*. عندما تستدعي الضحية Checkpointer.recover_if_possible()، يقوم SpeechBrain بسرد مرشّحات نقاط الاستعادة ويحلّل بيانات وصف كل مرشّح باستخدام:

yaml.load(fi, Loader=yaml.Loader)

نظرًا لأن yaml.Loader يدعم وسوم إنشاء كائنات Python مثل !!python/object/apply، فإن بيانات تعريف نقاط التحقق (checkpoint metadata) التي يتحكم فيها المهاجم يمكنها تنفيذ كود Python أثناء اكتشاف نقاط التحقق.

لا يلزم تحديد نقطة التحقق الخبيثة أو استعادتها. يحدث تنفيذ الكود أثناء قيام SpeechBrain بتعداد مرشحي نقاط التحقق.

التأثير

قد ينفذ المهاجم كود Python عشوائيًا في سياق عملية Python التي تشغّل SpeechBrain.

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

اعتمادًا على العملية المضيفة، قد يسمح ذلك بما يلي:

  • قراءة أو تعديل الملفات التي يمكن للعملية الوصول إليها.
  • الوصول إلى متغيرات البيئة وأسرار التطبيق.
  • استدعاء الخدمات الداخلية التي يمكن الوصول إليها من المضيف.
  • تعطيل مهام التدريب أو الاستدلال أو الأتمتة.

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

المكوّن المتأثر هو تدفق استرداد/سرد نقاط التحقق في SpeechBrain:

Checkpointer.recover_if_possible()
  -> list_checkpoints()
  -> _construct_checkpoint_objects()

أثناء سرد نقاط التحقق، يقوم SpeechBrain بفحص الدلائل الفرعية المسماة CKPT* التي تحتوي على CKPT.yaml. يتم تحليل كل ملف بيانات وصفية مرشح قبل الاختيار النهائي لنقطة التحقق.

يحدث التحليل غير الآمن في speechbrain.utils.checkpoints.checkpoints.py:

meta = yaml.load(fi, Loader=yaml.Loader)

ينشئ PoC نقطتي تحقق:

  • CKPT+poisoned-metadata: نقطة تحقق خبيثة أقدم تحتوي CKPT.yaml الخاصة بها على حمولة PyYAML object-apply.
  • CKPT+benign-newer: نقطة تحقق حديثة حميدة يُفترض أن يتم اختيارها حسب الأحدثية.

يتم اختيار نقطة التحقق الحميدة، لكن بيانات التعريف الخاصة بنقطة التحقق الخبيثة لا تزال تُنفَّذ أثناء سرد المرشحات. يوضح هذا تنفيذ الشيفرة في وقت تحليل بيانات التعريف بشكل مستقل عن استعادة نقطة التحقق.

إثبات المفهوم

package_builder.py ينشئ تخطيط نقطة التحقق الخاضع لسيطرة المهاجم.

run_poc.py يشغّل التحقق، ويستدعي Checkpointer.recover_if_possible()، ويطبع أدلة التنفيذ.

شغّل في بيئة اختبار محلية فقط:

python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

الأدلة المتوقعة على الإصدارات القابلة للاستغلال:

speechbrain_version: 1.1.0
installed_package: True
recovery_error: None
benign_checkpoint_selected: True
marker_before_recovery: False
marker_after_recovery: True
marker_contents:
speechbrain_checkpoint_yaml_loader_rce_triggered
success: True

الدليل المهم هو أن benign_checkpoint_selected: True و marker_after_recovery: True يظهران معًا. هذا يُظهر أن نقطة التحقق الأقدم الخبيثة لم يتم اختيارها للاستعادة، لكن بياناتها الوصفية (metadata) تم تحليلها وتنفيذها رغم ذلك أثناء قيام SpeechBrain بسرد مرشحات نقاط التحقق.

الحمولة غير ضارة عن قصد. فهي تكتب فقط سلسلة العلامة المحلية هذه:

speechbrain_checkpoint_yaml_loader_rce_triggered

إنه لا يُنشئ صدفة (shell)، ولا يتصل بخدمة شبكية، ولا يقرأ أسرارًا، ولا يحذف بيانات، ولا يعدّل ملفات خارج دليل PoC.

المعالجة

قم بالترقية إلى SpeechBrain 1.1.1 أو أحدث.

الإصلاح البرمجي الدائم هو استخدام المُحمّل الآمن (safe loader) الخاص بـ PyYAML لبيانات وصفية خاصة بنقاط التحقق (checkpoint metadata):

yaml.safe_load(fi)

أو:

yaml.load(fi, Loader=yaml.SafeLoader)

بيانات وصفية لنقطة التحقق تحتاج فقط إلى قيم قياسية مثل unixtime و end-of-epoch، لذلك لا ينبغي تمكين إنشاء كائنات Python لمسار التحليل هذا.

إذا لم يتوفر تصحيح أو ترقية فورية:

  • لا تستخدم أدلة نقاط التحقق، أو مخرجات النماذج، أو الأرشيفات من مصادر غير موثوقة.
  • اعزل مهام التدريب والاستدلال في SpeechBrain بأقل صلاحيات ممكنة.
  • تحقق من الوسوم والحقول غير المتوقعة في CKPT.yaml أو ارفضها.
  • تجنب الاستئناف التلقائي من أدلة نقاط التحقق المقدمة من مصادر خارجية.

الفضل

تم اكتشافه والإبلاغ عنه بواسطة Sai Teja Erukude.

تم تنسيق الإفصاح من خلال VulnCheck.

المراجع

  • سجل CVE: https://www.cve.org/CVERecord?id=CVE-2026-10036
  • إرشاد VulnCheck: https://www.vulncheck.com/advisories/speechbrain-arbitrary-code-execution-via-ckpt-yaml-parsing
  • ملاحظات الإصدار: https://github.com/speechbrain/speechbrain/releases/tag/v1.1.1
  • طلب السحب: https://github.com/speechbrain/speechbrain/pull/3067
  • التزام التصحيح: https://github.com/speechbrain/speechbrain/commit/22a616646a493871401461f80b2d5cf564cb2850
  • وثائق PyYAML: https://pyyaml.org/wiki/PyYAMLDocumentation
  • شرح تفصيلي محلي: exploit_walkthrough.md
تنزيل الأداة