GitHub Advisoryadvisory · npm

GHSA-7x6v-j9x4-qf24 jsPDF has a PDF Object Injection via FreeText color

HIGH Published 2026-03-17 Modified 2026-03-19 Official page ↗
Aliases
CVE-2026-31898
Ecosystem
npm
Packages
jspdf
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Weaknesses
CWE-116
Reviewed
2026-03-17

Affected packages

• npm jspdf: < 4.2.1 → fixed in 4.2.1

Description

Impact User control of arguments of the `createAnnotation` method allows users to inject arbitrary PDF objects, such as JavaScript actions. If given the possibility to pass unsanitized input to the following method, a user can inject arbitrary PDF objects, such as JavaScript actions, which might trigger when the PDF is opened or interacted with.. • `createAnnotation`: `color` parameter Example attack vector: ```js import { jsPDF } from 'jspdf' const doc = new jsPDF(); const payload = '000000) /AA >>> ('; doc.createAnnotation({ type: 'freetext', bounds: { x: 10, y: 10, w: 120, h: 20 }, contents: 'hello', color: payload }); doc.save('test.pdf'); ``` Patches The vulnerability has been fixed in [email protected]. Workarounds Sanitize user input before passing it to the vulnerable API members.

Related

Alias · CVE (1)

  • CVE-2026-31898 jsPDF is a library to generate PDFs in JavaScript. vulnerability

Weakness · CWE (1)

  • CWE-116 Improper Encoding or Escaping of Output weakness

References