
استغلال مبني على لغة Python لـ CVE-2025-20260 يقوم بإنشاء ملف PDF ضار ويتضمن إمكانيات تحليل core dump للتحقق من الثغرة.
أول إثبات مفهوم عام لـ CVE-2025-20260 (درجة CVSS 3.1 الأساسية 9.8، حرجة)، وهي ثغرة تجاوز سعة المخزن المؤقت في مسار فحص PDF في ClamAV. يحتوي هذا المستودع على مولّد لملف PDF الخبيث الذي يُفعّل الثغرة، بالإضافة إلى تحليل core-dump يوثّق الانهيار.
تم تطوير هذا PoC ونشره بعد ترقيع الثغرة والكشف المنسّق عنها من قبل Cisco/ClamAV. وهو مُقدَّم لأغراض البحث الدفاعي وهندسة الكشف والتعليم. لا تشغّله ضد أنظمة لا تملكها أو لا تملك إذناً صريحاً باختبارها.
وفقاً لـ سجل NVD واستشارة Cisco:
قد تسمح ثغرة في عمليات فحص PDF في ClamAV لمهاجم بعيد غير مُصادَق عليه بالتسبب في حالة تجاوز سعة المخزن المؤقت، أو التسبب في حالة حجب الخدمة (DoS)، أو تنفيذ تعليمات برمجية عشوائية على جهاز متأثر. توجد هذه الثغرة لأن مخازن الذاكرة المؤقتة تُخصَّص بشكل غير صحيح عند معالجة ملفات PDF.
يقرأ محلّل PDF في ClamAV حقل /Length لكائن stream لتحديد حجم المخزن المؤقت الذي يخصّصه للبيانات المفكوكة الترميز. يصنع clamshank.py ملف PDF يُعلن فيه كائن واحد طولاً مشوّهاً ومفرطاً ويحمل stream بترميز ASCII85Decode أطول قليلاً من uint32_MAX / 4 بايت:
1 0 obj
<< /Length 1073741824 444444444444 /Filter /ASCII85Decode >>
stream
... (~1,073,741,825 bytes of ASCII85 data) ...
عندما يفحص ClamAV الملف، تؤدي الحسابات الخاطئة للطول إلى تخصيص مخزن مؤقت بحجم غير صحيح، ثم يتجاوز فك الترميز اللاحق حدوده، مما يُنهي عملية الفحص (DoS) مع احتمال تنفيذ تعليمات برمجية في سياق عملية ClamAV.
| الملف | الوصف |
|---|---|
clamshank.py | يولّد clam-cve.pdf، ملف PDF الخبيث الذي يُفعّل تجاوز السعة. |
HOS Core dump analysis for CVE-2025-20260.pdf | تحليل core-dump للانهيار، يوثّق تجاوز السعة لحظة حدوث العطل. |
python3 clamshank.py # writes clam-cve.pdf
clamscan clam-cve.pdf # against a vulnerable ClamAV build, in an isolated VM
شغّله فقط ضد نسخة ClamAV تتحكم بها، في بيئة معزولة/قابلة للتخلص منها. الملف المُولَّد بحجم ~1 GB بحكم التصميم.
قم بالترقية إلى إصدار ClamAV مُرقَّع (راجع استشارة Cisco للحصول على الإصدارات المُصلحة). لا تعرّض فحص PDF للمدخلات غير الموثوقة على نسخ غير مُرقَّعة.
لأغراض البحث الأمني المصرّح به والتعليم فقط. المؤلف غير مسؤول عن سوء الاستخدام.