Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-vm32-vv63-w422

Опубликовано: 02 фев. 2026
Источник: github
Github: Прошло ревью
CVSS4: 6.9

Описание

jsPDF Vulnerable to Stored XMP Metadata Injection (Spoofing & Integrity Violation)

Impact

User control of the first argument of the addMetadata function allows users to inject arbitrary XML.

If given the possibility to pass unsanitized input to the addMetadata method, a user can inject arbitrary XMP metadata into the generated PDF. If the generated PDF is signed, stored or otherwise processed after, the integrity of the PDF can no longer be guaranteed.

Example attack vector:

import { jsPDF } from "jspdf" const doc = new jsPDF() // Input a string that closes the current XML tag and opens a new one. // We are injecting a fake "dc:creator" (Author) to spoof the document source. const maliciousInput = '</jspdf:metadata></rdf:Description>' + '<rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/">' + '<dc:creator>TRUSTED_ADMINISTRATOR</dc:creator>' + // <--- Spoofed Identity '</rdf:Description>' + '<rdf:Description><jspdf:metadata>' // The application innocently adds the user's input to the metadata doc.addMetadata(maliciousInput, "http://valid.namespace") doc.save("test.pdf")

Patches

The vulnerability has been fixed in jsPDF@4.1.0

Workarounds

Sanitize user input before passing it to the addMetadata method: escape XML entities. For example:

let input = "..." input = input .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;") .replace(/"/g, "&quot;") .replace(/'/g, "&apos;") doc.addMetadata(input)

Пакеты

Наименование

jspdf

npm
Затронутые версииВерсия исправления

<= 4.0.0

4.1.0

EPSS

Процентиль: 2%
0.00014
Низкий

6.9 Medium

CVSS4

Дефекты

CWE-20
CWE-74

Связанные уязвимости

nvd
4 дня назад

jsPDF is a library to generate PDFs in JavaScript. Prior to 4.1.0, user control of the first argument of the addMetadata function allows users to inject arbitrary XML. If given the possibility to pass unsanitized input to the addMetadata method, a user can inject arbitrary XMP metadata into the generated PDF. If the generated PDF is signed, stored or otherwise processed after, the integrity of the PDF can no longer be guaranteed. The vulnerability has been fixed in jsPDF@4.1.0.

debian
4 дня назад

jsPDF is a library to generate PDFs in JavaScript. Prior to 4.1.0, use ...

EPSS

Процентиль: 2%
0.00014
Низкий

6.9 Medium

CVSS4

Дефекты

CWE-20
CWE-74