
أداة بحث أمني لثغرات PaperCut CVE-2026-81578 وCVE-2026-82078
أداة بحث أمني احترافية لتقييم الثغرات في PaperCut NG/MF والاستغلال المصرح به
╔══════════════════════════════════════════════════════════════════╗
║ PAPERCUT SECURITY TOOL – POWER MODE ║
║ CVE-2026-81578 · CVE-2026-82078 · v3.1.0 ║
║ ⚡ powered by yora 1928 ⚡ ║
╚══════════════════════════════════════════════════════════════════╝
توفر هذه الأداة تقييمًا آمنًا وغير مدمر للثغرات واستغلالًا عن بُعد اختياريًا (بتفويض صريح) لخوادم PaperCut NG/MF. وهي مصممة لـ الذين يحتاجون إلى التحقق من وجود ثغرتين حرجتين في PaperCut.
| CVE ID | الوصف | CVSS | CWE |
|---|---|---|---|
| CVE-2026-81578 | تجاوز المصادقة عبر طلبات Apache Tapestry "المعقدة المباشرة" | 8.8 (HIGH) | CWE-306 |
| CVE-2026-82078 | تحميل فئات ديناميكي غير آمن في أدوات اتصال قاعدة البيانات | 9.4 (CRITICAL) | CWE-470 |
مراجع رئيسية:
تقوم هذه الأداة بالكشف عن بُعد قائم على المؤشرات. وهي لا تدّعي إثبات قابلية الاستغلال على خوادم PaperCut الحقيقية إلا عند استخدام --force بتفويض كتابي صريح.
| الحالة | المعنى |
|---|---|
SAFE | الإصدار مُصلَح أو لم يتم اكتشاف مؤشرات |
AFFECTED_VERSION | الإصدار يطابق النطاق المتأثر (نشرة البائع) |
TAPESTRY_DETECTED | تم اكتشاف إطار عمل Apache Tapestry (المستخدم بواسطة PaperCut) |
ADMIN_ENDPOINT_ACCESSIBLE | نقاط النهاية الإدارية قابلة للوصول بدون مصادقة |
DB_CONFIG_ACCESSIBLE | نقاط نهاية تكوين قاعدة البيانات قابلة للوصول |
POTENTIALLY_VULNERABLE | مجموعة المؤشرات تشير إلى ثغرة محتملة، لكن قابلية الاستغلال غير مؤكدة |
NOT_DETECTABLE | معلومات غير كافية للتقييم |
يتم حساب درجات الثقة بناءً على وزن الأدلة وتكون محدودة بـ 85% للكشف عن بُعد لتجنب المبالغة في الادعاءات.
--force (التفويض مطلوب)--input, --threads)--prefilter)| الميزة | ضد هدف حقيقي | ضد المختبر المحلي |
|---|---|---|
| بصمة النظام | ✅ آمن (قراءة فقط) | ✅ آمن |
| تقييم CVE | ✅ آمن (قائم على المؤشرات) | ✅ آمن |
| عرض المفهوم | ❌ محظور (localhost فقط) | ✅ مسموح |
| الاستغلال عن بُعد | ⚠️ يتطلب --force والتفويض | ✅ مسموح |
| تغييرات التكوين | ❌ أبدًا | ✅ فقط داخل المختبر |
| RCE / تنفيذ الحمولة | ❌ أبدًا | ❌ غير منفذ (محاكاة فقط) |
# استنساخ المستودع
git clone https://github.com/yourusername/papercut-cve-tool.git
cd papercut-cve-tool
# إنشاء بيئة افتراضية
python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
# أو
.venv\Scripts\activate # Windows
# تثبيت التبعيات
pip install -r requirements.txt
# التحقق من التثبيت
python papercut.py self-test
# عرض المساعدة
python papercut.py --help
# تشغيل فحص كامل ضد هدف
python papercut.py scan http://127.0.0.1:8080
# بصمة النظام فقط
python papercut.py fingerprint http://127.0.0.1:8080
# فحص CVE محدد
python papercut.py check http://127.0.0.1:8080 --cve 81578
# بدء المختبر المحلي التعليمي
python papercut.py lab
# تشغيل عرض المفهوم (المختبر فقط)
python papercut.py exploit --cve 81578
# استغلال عن بُعد (التفويض مطلوب)
python papercut.py exploit --cve 81578 --target https://target.com:9192 --force
# فحص دفعات مع تصفية مسبقة وتعدد خيوط
python papercut.py scan --input targets.txt --prefilter --threads 10 --timeout 5
# تحليل ملف سجل بحثًا عن مؤشرات الاختراق
python papercut.py detect server.log
# إنشاء تقرير HTML
python papercut.py report result.json --format html
# القائمة التفاعلية
python papercut.py interactive
| الأمر | الوصف |
|---|---|
scan TARGET | فحص ثغرات كامل مع بصمة النظام + فحوصات CVE |
fingerprint TARGET | اكتشاف إصدار PaperCut، وإطار Tapestry، ونقاط النهاية المكشوفة |
check TARGET --cve {81578,82078} | تشغيل فحص مؤشرات CVE محدد |
lab [--port PORT] [--test] | بدء المختبر المحلي التعليمي (مع اختبار ذاتي اختياري) |
exploit --cve {81578,82078} [--target] [--force] | تشغيل عرض المفهوم أو الاستغلال عن بُعد (إذا كان مصرحًا) |
detect LOGFILE [--output] | تحليل ملف السجل بحثًا عن مؤشرات مشبوهة |
report INPUT [--format {html,json,text}] [--output] | إنشاء تقرير احترافي من نتائج JSON |
interactive | تشغيل القائمة التفاعلية |
self-test | تشغيل التشخيصات الداخلية |
| الخيار | الوصف |
|---|---|
--timeout N | مهلة الطلب بالثواني (الافتراضي: 10) |
--verbose | عرض مخرجات تصحيح مفصلة |
--quiet | إخفاء المخرجات غير الأساسية |
--output FILE | حفظ النتائج في ملف |
--format {text,json,html} | صيغة المخرجات للفحص/التقرير |
| الخيار | الوصف |
|---|---|
--input FILE | ملف يحتوي على الأهداف (هدف واحد لكل سطر) للفحص الدفعي |
--output-dir DIR | دليل حفظ نتائج الدفعات |
--threads N | عدد الخيوط المتزامنة (وضع الدفعات) |
--prefilter | فحص المنافذ المفتوحة قبل الفحص (الدفعات فقط) |
المختبر هو خادم HTTP بسيط بلغة Python يعيد إنتاج مفاهيم الثغرتين لأغراض تعليمية.
ConfigEditor, UserList) أثناء عرض صفحة عامة (Error.page, Exception.page)# بدء المختبر
python papercut.py lab
# تشغيل اختبار المختبر الآلي
python papercut.py lab --test
نقاط نهاية المختبر:
http://127.0.0.1:8080/lab/cve-81578?component=ConfigEditor&display=Errorhttp://127.0.0.1:8080/lab/cve-82078?driver=org.attacker.RCEPayloadتحلل الأداة ملفات السجلات بحثًا عن مؤشرات مشبوهة (IOCs) مستمدة من آليات الثغرات:
| المؤشر | الخطورة | الوصف |
|---|---|---|
tapestry_complex_direct | CRITICAL | نمط طلب Tapestry .page.*.zone |
admin_component_access | HIGH | الوصول إلى صفحة ConfigEditor / UserList |
public_page_tapestry | HIGH | صفحة Error / Exception مع Tapestry |
tapestry_post_request | CRITICAL | طلب POST إلى Tapestry .page |
db_driver_config | CRITICAL | تغييرات تكوين برنامج تشغيل قاعدة البيانات |
class_loading_error | HIGH | ClassNotFoundException / NoClassDefFoundError |
dynamic_class_loading | CRITICAL | تحميل فئة من مصدر خارجي |
python papercut.py detect /var/log/papercut/server.log --output detection.json
إنشاء تقارير احترافية بصيغ HTML أو JSON أو نص عادي.
# أولاً، حفظ نتائج الفحص بصيغة JSON
python papercut.py scan http://127.0.0.1:8080 --format json --output result.json
# إنشاء تقرير HTML
python papercut.py report result.json --format html --output report.html
# إنشاء تقرير JSON
python papercut.py report result.json --format json --output report.json
# إنشاء تقرير نصي
python papercut.py report result.json --format text --output report.txt
يتضمن تقرير HTML:
بناءً على النشرة الأمنية من PaperCut (27 أغسطس 2026):
| نطاق الإصدار | الحالة |
|---|---|
| 24.x < 24.1.10 | ❌ متأثر |
| 24.1.10+ | ✅ مُصلَح |
| 25.x < 25.0.13 | ❌ متأثر |
| 25.0.13+ | ✅ مُصلَح |
| 26.x < 26.0.5 | ❌ متأثر |
| 26.0.5+ | ✅ مُصلَح |
| 23.x وما دون | ⚠️ نهاية العمر – يُوصى بالترقية |
يستخدم PaperCut إطار عمل Apache Tapestry. تسمح صيغة طلب Tapestry "المعقد المباشر" بتحديد كل من:
Error.page)ConfigEditor.page)يتحقق التحقق من الوصول فقط من الصفحة المعروضة، وليس المكون الذي يتم تنفيذه. يمكن للمهاجمين استدعاء مكونات إدارية أثناء عرض صفحات عامة، متجاوزين المصادقة بالكامل.
ناقل الهجوم: POST /papercut/ConfigEditor.page?... مع طلب .zone، معروض عبر Error.page
يقوم PaperCut بإنشاء فئات برامج تشغيل JDBC من أسماء برامج تشغيل قابلة للتكوين (مثل database.driver.class). لا يتحقق التطبيق من هذه الأسماء مقابل قائمة بيضاء. يمكن للمهاجمين الذين يمكنهم التلاعب بتكوين النظام (عبر تجاوز المصادقة أو وسائل أخرى) تحديد أسماء فئات Java عشوائية، والتي يتم تحميلها وإنشاؤها بواسطة عملية خدمة PaperCut.
التأثير: تنفيذ التعليمات البرمجية عن بُعد (RCE) في سياق أمان خدمة PaperCut.
المساهمات مرحب بها! يرجى قراءة CONTRIBUTING.md للإرشادات.
رخصة MIT – انظر LICENSE للتفاصيل.
هذه الأداة مخصصة لاختبارات الأمان المصرح بها والأغراض التعليمية فقط. لا تستخدمها ضد أي نظام دون إذن كتابي صريح. عروض المفهوم مقفلة على localhost ولن تعمل ضد المضيفين البعيدين.
باستخدامك لهذه الأداة، فإنك توافق على:
الإصدار: 3.1.0
آخر تحديث: 2026-08-29
المشرف: yora 1928
"الأمان ليس منتجًا، بل عملية." – بروس شناير
---
## 🚀 الخطوات التالية على GitHub
1. **افتح** `https://github.com/yora1928/PaperCut-CVE-2026-81578-82078`
2. **انقر** على `README.md`
3. **انقر** على أيقونة القلم (تحرير)
4. **احذف** كل المحتوى القديم
5. **الصق** النص الكامل أعلاه
6. **انقر** على `Commit changes...`
7. **اكتب** رسالة الالتزام: `Update README.md with final version`
8. **انقر** على `Commit changes`
---
## 🎉 **تم! مشروعك أصبح احترافيًا وجاهزًا للمحفظة!** ⚡