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

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

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.

عرض المستودع
منذ 7س 3دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-10036: تنفيذ تعسفي للكود في SpeechBrain عبر تحليل CKPT.yaml

الخطورة: عالية، CVSS 4.0 8.7، CVSS 3.1 8.8 (مُعيّن من قبل VulnCheck، CNA)

المتجه (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

CNA: VulnCheck

نُشر: 27 أغسطس 2026


الملخص

يستخدم SpeechBrain قبل الإصدار 1.1.1 أداة التحميل غير الآمنة من PyYAML عند تحليل بيانات تعريف الخاصة بنقاط التفتيش أثناء استرداد نقاط التفتيش.

CKPT.yaml

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

root@kitploit:~
yaml.load(fi, Loader=yaml.Loader)

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

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

التأثير

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

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

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

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

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

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

root@kitploit:~
Checkpointer.recover_if_possible()
  -> list_checkpoints()
  -> _construct_checkpoint_objects()

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

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

root@kitploit:~
meta = yaml.load(fi, Loader=yaml.Loader)

ينشئ إثبات المفهوم نقطتي تفتيش:

  • CKPT+poisoned-metadata: نقطة تفتيش خبيثة أقدم يحتوي ملف CKPT.yaml الخاص بها على حمولة تطبيق كائن PyYAML.
  • CKPT+benign-newer: نقطة تفتيش سليمة أحدث يجب تحديدها حسب الأحدثية.

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

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

package_builder.py ينشئ تخطيط نقاط التفتيش الذي يتحكم فيه المهاجم.

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

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

root@kitploit:~
python -m venv .venv
.venv\Scripts\activate
python -m pip install -r requirements.txt
python -B run_poc.py

الدليل المتوقع على الإصدارات المعرضة للخطر:

root@kitploit:~
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 يظهران معًا. يُظهر هذا أن نقطة التفتيش الخبيثة الأقدم لم يتم تحديدها للاسترداد، ولكن بياناتها الوصفية لا تزال تُحلل وتُنفذ بينما كان SpeechBrain يسرد مرشحي نقاط التفتيش.

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

root@kitploit:~
speechbrain_checkpoint_yaml_loader_rce_triggered

لا تفتح غلافًا، ولا تتصل بخدمة شبكة، ولا تقرأ الأسرار، ولا تحذف البيانات، ولا تعدّل الملفات خارج دليل إثبات المفهوم.

المعالجة

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

الإصلاح الدائم للكود هو استخدام أداة التحميل الآمنة من PyYAML لبيانات تعريف نقاط التفتيش:

root@kitploit:~
yaml.safe_load(fi)

أو:

root@kitploit:~
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
تنزيل الأداة