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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-64512-Polyglot-PoC — إثبات مفهوم لـ CVE-2025-64512 باستخدام ملف متعدد الصيغ. | Kitploit
أدوات/GitHubGitHub/luigigubello/cve-2025-64512-polyglot-poc
تحليل الثغرات الأمنيةالاستغلالأمن الويبالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
GitHubluigigubello/cve-2025-64512-polyglot-poc

CVE-2025-64512-Polyglot-PoC

إثبات مفهوم لـ CVE-2025-64512 باستخدام ملف متعدد الصيغ.

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2025-64512 حمولة متعددة اللغات

في الأسابيع الماضية (في نوفمبر 2025)، تم الكشف عن ثغرة مثيرة للاهتمام (CVE-2025-64512) في pdfminer.six, وهو مشروع Python شهير لمعالجة ملفات PDF، يُستخدم بشكل خاص في خطوط معالجة الذكاء الاصطناعي. تتيح الثغرة تنفيذ تعليمات برمجية عن بُعد عن طريق إلغاء تسلسل بيانات غير موثوقة عبر pickle.loads()، باستخدام ملف PDF كناقل هجوم. حتى الآن، كل شيء جيد: إنها ثغرة مهمة في حزمة Python شائعة. ما لفت انتباهي هو قابلية الاستغلال 👀.

على الأنظمة الشبيهة بلينكس، يمكن فقط حل الملفات الموجودة على نظام الملفات. سيحتاج المهاجم إلى تقديم ملف PDF الخبيث للمعالجة، ويجب أن يكون ملف pickle الخبيث موجودًا على النظام المستهدف في موقع يعرفه المهاجم مسبقًا، حيث يجب تعيينه داخل ملف PDF نفسه. في كثير من الحالات، سيكون من الصعب استغلال ذلك لأنه حتى لو قدم المهاجم ملفي PDF و pickle معًا، فلن تكون هناك طريقة لمعرفة المسار الكامل لملف pickle مسبقًا. [...] بشكل عام، هناك خطر أقل على نظام لينكس أو نظام شبيه بلينكس.

إذًا، على ما يبدو، لاستغلال هذه الثغرة على نظام شبيه بلينكس، يجب على المهاجم:

  • رفع أو توفير ملف PDF خبيث و ملف pickle خبيث إلى النظام الضعيف؛
  • معرفة موقع ملف pickle الخبيث (مسار الملف) في النظام الضعيف.

هل يمكننا إنشاء ملف PDF صالح يثير الثغرة دون معرفة مسار ملف pickle الخبيث؟

تعني كلمة «صالح» أن pdfminer.six لا يرفض الملف ويبدأ في معالجته (لأن ملف PDF هو ما يفتحه قارئ PDF).

الإجابة هي نعم، من خلال إنشاء حمولة متعددة اللغات (نوعًا ما). الفكرة هي إنشاء ملف يكون في الوقت نفسه ملف pickle.gz صالحًا وملف PDF صالحًا، بحيث يمكن لـ pdf2txt.py البدء في معالجة ملف PDF ثم الإشارة إليه لتحميل كود pickle بصيغة GZIP.

غالبًا - وليس دائمًا 🥲 - يكون الملف ملف PDF إذا احتوى على %PDF- في مكان ما، عمومًا في أول 1024 بايت (1 - 2). بالنسبة لـ pdfminer.six، يجب أن يحتوي ملف PDF الصالح فقط على كائن /Root (pdfdocument.py#L752). ملف GZIP له بايتات أولية محددة (RFC 1952 - Sec. 2.3.1)، لكنه يدعم التعليقات (FCOMMENT، RFC 1952 - Sec. 2.3.1).

إذًا، هذا هو تصميم الملف متعدد اللغات: إنشاء GZIP صالح يحتوي على حمولة pickle الخبيثة، ودمج ملف PDF صالح داخل علامة GZIP FCOMMENT. ثم استخدم هذا الملف كملف PDF صالح مع pdf2txt.py لإثارة الثغرة، واستخدم الملف نفسه لتنفيذ الـ pickle الخبيث.

(2025.12.12) تعديل:

القيود الوحيد الذي لدينا هو اسم الملف: يجب أن ينتهي بـ .pickle.gz (وهذا مضمّن في كود pdfminer.six، cmapdb.py#L235).

القيودان اللذان لدينا هما:

  • اسم الملف: يجب أن ينتهي بـ .pickle.gz (وهذا مضمّن في كود pdfminer.six، cmapdb.py#L235)؛
  • موقع PDF: ما زلنا بحاجة إلى معرفة موقع PDF على النظام الضعيف.

أنا مندهش قليلًا من أن هذه الثغرة (CVE) يُقلَّل من شأنها، بالنظر إلى شعبية هذا المشروع (6k ⭐️ على GitHub، لكنه مستخدم من 34k مشروعًا، وفقًا لإحصائيات GitHub) وحالات الاستخدام (أدوات سطر الأوامر، سير عمل الذكاء الاصطناعي، خطوط المعالجة، باختصار، كل أنواع البنية التحتية التي لا تريد تحديثها إذا كانت تعمل بشكل جيد).

على سبيل المثال، أداة Microsoft markitdown 0.1.3 (microsoft/markitdown، 84k ⭐️ على GitHub ويستخدمها 2k مشروع)، المثبتة قبل 1 ديسمبر، معرضة لتنفيذ تعليمات برمجية عشوائية عبر pdfminer.six. أصدر فريق Microsoft تصحيحًا في 1 ديسمبر، 0.1.4، لكن دون تنبيهات أمنية، لذا لا أعتقد أن فرق الهندسة الأخرى أولت التحديث أولوية.

مشاريع أخرى قد تتأثر بـ CVE-2025-64512، ومن السهل جدًا استغلالها.

المشاريع المعرضة للخطر

قائمة (غير مكتملة) بالمشاريع المعرضة للخطر:

  • pdfminer.six (20250506) (تم التصحيح في 20251107)
  • markitdown (0.1.3) (تم التصحيح في 0.1.4)
  • pdfplumber (0.11.7) (تم التصحيح في 0.11.8)

إثبات المفهوم لـ pdf2txt.py 20250506

root@kitploit:~
docker build -t cve-2025-64512-poc .  
docker run --rm -it cve-2025-64512-poc
pdf2txt.py payload.pickle.gz

إثبات المفهوم لـ markitdown 0.1.3

root@kitploit:~
docker build -t cve-2025-64512-poc .  
docker run --rm -it cve-2025-64512-poc
markitdown markitdown-payload.pickle.gz -x pdf -o output.md

فيديو

poc.gif

تنزيل الأداة