---
id: CVE-2026-31898
title: jsPDF is a library to generate PDFs in JavaScript
summary: >-
  jsPDF is a library to generate PDFs in JavaScript. Prior to version 4.2.1,
  user control of arguments of the `createAnnotation` method allows users to
  inject arbitrary PDF objects, such as JavaScript actions. If given the
  possibility to p…
severity: high
cvss: 8.1
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N'
cwe:
  - CWE-116
  - CWE-94
vendor: parall
product: jspdf
affected:
  - jspdf < 4.2.1
patched:
  - jspdf 4.2.1
published: '2026-03-18'
updated: '2026-07-20'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-31898'
references:
  - url: >-
      https://github.com/parallax/jsPDF/blob/b1607a9391d4cd65ea7ade25998aea8345ae1be3/src/modules/annotations.js#L193-L208
    label: security-advisories@github.com
  - url: >-
      https://github.com/parallax/jsPDF/commit/4155c4819d5eca284168e51e0e1e81126b4f14b8
    label: security-advisories@github.com
  - url: 'https://github.com/parallax/jsPDF/releases/tag/v4.2.1'
    label: security-advisories@github.com
  - url: 'https://github.com/parallax/jsPDF/security/advisories/GHSA-7x6v-j9x4-qf24'
    label: security-advisories@github.com
  - url: 'https://access.redhat.com/errata/RHSA-2026:7110'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:7128'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/security/cve/CVE-2026-31898'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2448547'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-31898.json
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
tags:
  - nvd
epss: 0.0062
epssPercentile: 0.47505
ingestedAt: '2026-07-20T12:38:40.496Z'
---

## Overview

jsPDF is a library to generate PDFs in JavaScript. Prior to version 4.2.1, 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 the `createAnnotation`: `color` parameter. The vulnerability has been fixed in jsPDF@4.2.1. As a workaround, sanitize user input before passing it to the vulnerable API members.

## Affected

- `jspdf < 4.2.1`

## Remediation

Upgrade past the affected range:

- `jspdf 4.2.1`
