VDB
Sign up
HIGH8.1

GHSA-7x6v-j9x4-qf24

jsPDF has a PDF Object Injection via FreeText color

Quick fix

GHSA-7x6v-j9x4-qf24 — jspdf: upgrade to the fixed version with the command below.

npm install jspdf@4.2.1

Details

### 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 <</E <</S /Launch /F (calc.exe)>>>> (';

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 jsPDF@4.2.1.

### Workarounds Sanitize user input before passing it to the vulnerable API members.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm/jspdf
Introduced in: 0Fixed in: 4.2.1
Fixnpm install jspdf@4.2.1

References