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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
docling-core-CVE-2026-24009 — شرح تقني وإثبات مفهوم (PoC) لثغرة CVE-2026-24009، يوضح تحميل YAML غير الآمن في docling-core ومسارات التخفيف العملية. | Kitploit
أدوات/GitHubGitHub/biranperetz/docling-core-cve-2026-24009
تحليل الثغرات الأمنيةتحليل الكودالاستغلالالأوراق والأبحاثالتعلم والتعليم
GitHubbiranperetz/docling-core-cve-2026-24009

docling-core-CVE-2026-24009

شرح تقني وإثبات مفهوم (PoC) لثغرة CVE-2026-24009، يوضح تحميل YAML غير الآمن في docling-core ومسارات التخفيف العملية.

عرض المستودع
منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-24009 — إلغاء تسلسل YAML غير الآمن في docling-core (PoC + ملاحظات)

يحتوي هذا المستودع على إثبات للمفهوم (PoC) وماسح ضوئي بسيط يوضح CVE-2026-24009، حيث يمكن لـ docling-core تمكين تنفيذ التعليمات البرمجية عند تحميل YAML يتحكم فيه المهاجم في ظل شروط تبعية محددة.

TL;DR

التأثير: تنفيذ تعليمات برمجية عن بُعد (RCE) محتمل أثناء تحليل YAML السلسلة القابلة للاستغلال (كلها مطلوبة):

  • docling-core >= 2.21.0 و < 2.48.4
  • PyYAML < 5.4 (سلوك المنبع المرتبط بـ CVE-2020-14343)
  • يستدعي التطبيق DoclingDocument.load_from_yaml(...) على YAML غير موثوق

الإصلاح: ترقية docling-core إلى >= 2.48.4 (التبديل إلى yaml.SafeLoader)
ترقية إلى

إصلاح بديل:
PyYAML
>= 5.4

الخلفية / السبب الجذري

يقوم DoclingDocument.load_from_yaml() بإلغاء تسلسل مستند DoclingDocument مُسلسل بصيغة YAML. في الإصدارات القابلة للاستغلال، يقوم بتحميل YAML باستخدام محمّل غير آمن (yaml.FullLoader) عندما يكون PyYAML قابلاً للاستغلال، مما يسمح لمنشئات YAML الخبيثة بتنفيذ التعليمات البرمجية أثناء التحليل (راجع CVE-2020-14343 لمزيد من المعلومات).


البيئة المُختبرة (PoC)

  • نظام التشغيل: Ubuntu 24.04
  • بايثون: 3.12.3
  • docling-core: 2.48.3 (قابل للاستغلال)
  • PyYAML: 5.3.1 (قابل للاستغلال)

إعادة الإنتاج (PoC)

1) إنشاء بيئة افتراضية

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "docling-core==2.48.3" "PyYAML==5.3.1"

2) (اختياري) تأكيد المحمّل القابل للاستغلال

قم بتشغيل:

root@kitploit:~
python check_loader.py

في الإصدارات القابلة للاستغلال، يستخدم load_from_yaml():

root@kitploit:~
data = yaml.load(f, Loader=yaml.FullLoader)

3) تشغيل PoC

root@kitploit:~
python repro_docling_load.py

السلوك المتوقع:

  • يرفع repro_docling_load.py خطأ ValidationError (متوقع)
  • يتم إنشاء ملف علامة محلي: /tmp/docling_cve_poc_marker

يوضح هذا أن التنفيذ حدث أثناء تحليل YAML، قبل فشل DoclingDocument.model_validate(...).


التخفيف / التحقق من التصحيح

التخفيف 1 — ترقية docling-core (موصى به)

root@kitploit:~
python -m pip install --upgrade "docling-core==2.48.4"
python check_loader.py
python repro_docling_load.py

المتوقع:

  • يُظهر check_loader.py yaml.SafeLoader
  • يفشل PoC مع خطأ في منشئ YAML ولا يتم إنشاء ملف علامة

التخفيف 2 — ترقية PyYAML

ترقية PyYAML إلى >= 5.4 تخفف من سلوك المنبع المرتبط بـ CVE-2020-14343.

التخفيف 3 — فرض التحميل الآمن

إذا لم تكن الترقية ممكنة، تجنب تحميل YAML غير الموثوق باستخدام محمّلات غير آمنة. فرض yaml.SafeLoader عند إلغاء تسلسل YAML غير الموثوق.


ملاحظات حول تعرض docling النهائي (تخطيط التبعيات)

بينما توجد هذه الثغرة في docling-core، فإن المستهلك الأكثر شيوعًا هو docling. نطاق التبعية الواسع في docling لا يثبت الثغرة بحد ذاته؛ ما يهم هو البيئة المُحلّة (ملفات القفل / الحزم المثبتة) وما إذا كانت مسارات استيراد YAML مستخدمة.

يتضمن هذا المستودع collect_versions.py، الذي يخطط:

  • قيود docling-core المُعلنة من pyproject.toml
  • إصدارات docling-core المثبتة من uv.lock (أو poetry.lock في العلامات الأقدم)

من البيانات المستخرجة، فإن إصدارات docling القابلة للاستغلال المحتملة (القيود تسمح بالقابل للاستغلال + القفل يثبت القابل للاستغلال) هي:

  • >= v2.27.0 و <= v2.57.0

هذا مؤشر على حل التبعيات، وليس دليلاً على أن سير عمل docling الافتراضي يصل إلى load_from_yaml() على مدخلات غير موثوقة.


محتويات المستودع (على مستوى عالٍ)

  • repro_docling_load.py — مشغّل PoC بسيط
  • check_loader.py — يطبع محمّل YAML المستخدم بواسطة load_from_yaml()
  • scanner/ — ماسح ضوئي بسيط قائم على التبعيات (فحص نقطة النهاية المباشر اختياري)
  • collect_versions.py — أداة مساعدة لربط علامات docling بإصدارات docling-core المثبتة
تنزيل الأداة