Commit b2d5c44
chore(deps): update dependency jspdf to v4.2.0 [security] (#1991)
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [jspdf](https://redirect.github.com/parallax/jsPDF) | [`4.1.0` →
`4.2.0`](https://renovatebot.com/diffs/npm/jspdf/4.1.0/4.2.0) |

|

|
### GitHub Vulnerability Alerts
####
[CVE-2026-25535](https://redirect.github.com/parallax/jsPDF/security/advisories/GHSA-67pg-wm7f-q7fj)
### Impact
User control of the first argument of the `addImage` method results in
denial of service.
If given the possibility to pass unsanitized image data or URLs to the
`addImage` method, a user can provide a harmful GIF file that results in
out of memory errors and denial of service. Harmful GIF files have large
width and/or height entries in their headers, wich lead to excessive
memory allocation.
Other affected methods are: `html`.
Example attack vector:
```js
import { jsPDF } from "jspdf"
// malicious GIF image data with large width/height headers
const payload = ...
const doc = new jsPDF();
doc.addImage(payload, "GIF", 0, 0, 100, 100);
```
### Patches
The vulnerability has been fixed in jsPDF 4.1.1. Upgrade to
jspdf@>=4.2.0.
### Workarounds
Sanitize image data or URLs before passing it to the addImage method or
one of the other affected methods.
### References
https://github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-25535.md
####
[CVE-2026-25755](https://redirect.github.com/parallax/jsPDF/security/advisories/GHSA-9vjf-qc39-jprp)
### Impact
User control of the argument of the `addJS` method allows an attacker to
inject arbitrary PDF objects into the generated document. By crafting a
payload that escapes the JavaScript string delimiter, an attacker can
execute malicious actions or alter the document structure, impacting any
user who opens the generated PDF.
```js
import { jsPDF } from "jspdf";
const doc = new jsPDF();
// Payload:
// 1. ) closes the JS string.
// 2. > closes the current dictionary.
// 3. /AA ... injects an "Additional Action" that executes on focus/open.
const maliciousPayload = "console.log('test');) >> /AA << /O << /S /JavaScript /JS (app.alert('Hacked!')) >> >>";
doc.addJS(maliciousPayload);
doc.save("vulnerable.pdf");
```
### Patches
The vulnerability has been fixed in jspdf@4.2.0.
### Workarounds
Escape parentheses in user-provided JavaScript code before passing them
to the `addJS` method.
### References
https://github.com/ZeroXJacks/CVEs/blob/main/2026/CVE-2026-25755.md
####
[CVE-2026-25940](https://redirect.github.com/parallax/jsPDF/security/advisories/GHSA-p5xg-68wr-hm3m)
### Impact
User control of properties and methods of the Acroform module allows
users to inject arbitrary PDF objects, such as JavaScript actions.
If given the possibility to pass unsanitized input to one of the
following property, a user can inject arbitrary PDF objects, such as
JavaScript actions, which are executed when the victim hovers over the
radio option.
* `AcroformChildClass.appearanceState`
Example attack vector:
```js
import { jsPDF } from "jspdf"
const doc = new jsPDF();
const group = new doc.AcroFormRadioButton();
group.x = 10; group.y = 10; group.width = 20; group.height = 10;
doc.addField(group);
const child = group.createOption("opt1");
child.x = 10; child.y = 10; child.width = 20; child.height = 10;
child.appearanceState = "Off /AA << /E << /S /JavaScript /JS (app.alert('XSS')) >> >>";
doc.save("test.pdf");
```
### Patches
The vulnerability has been fixed in jsPDF@4.2.0.
### Workarounds
Sanitize user input before passing it to the vulnerable API members.
---
### Release Notes
<details>
<summary>parallax/jsPDF (jspdf)</summary>
###
[`v4.2.0`](https://redirect.github.com/parallax/jsPDF/releases/tag/v4.2.0)
[Compare
Source](https://redirect.github.com/parallax/jsPDF/compare/v4.1.0...v4.2.0)
This release fixes three security issues.
#### What's Changed
- Fix [PDF Injection in AcroForm module allows Arbitrary JavaScript
Execution (RadioButton
children)](https://redirect.github.com/parallax/jsPDF/security/advisories/GHSA-p5xg-68wr-hm3m)
vulnerability.
- Fix [Client-Side/Server-Side Denial of Service via Malicious GIF
Dimensions](https://redirect.github.com/parallax/jsPDF/security/advisories/GHSA-67pg-wm7f-q7fj)
vulnerability.
- Fix [PDF Object Injection via Unsanitized Input in addJS
Method](https://redirect.github.com/parallax/jsPDF/security/advisories/GHSA-9vjf-qc39-jprp)
vulnerability.
- Add "default" property to export section in package.json by
[@​stefan-schweiger](https://redirect.github.com/stefan-schweiger)
in [#​3953](https://redirect.github.com/parallax/jsPDF/pull/3953)
#### New Contributors
-
[@​stefan-schweiger](https://redirect.github.com/stefan-schweiger)
made their first contribution in
[#​3953](https://redirect.github.com/parallax/jsPDF/pull/3953)
**Full Changelog**:
<parallax/jsPDF@v4.1.0...v4.2.0>
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/splunk/addonfactory-ucc-generator).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNi41IiwidXBkYXRlZEluVmVyIjoiNDMuMjYuNSIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOltdfQ==-->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kkedziak-splunk <kkedziak@splunk.com>
Co-authored-by: srv-rr-github-token <94607705+srv-rr-github-token@users.noreply.github.com>1 parent b8aa14c commit b2d5c44
File tree
7 files changed
+753
-455
lines changed- tests/smoke
- ui
- src/pages/Dashboard
- stories/__images__
- tests
7 files changed
+753
-455
lines changedSome generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
787 | 787 | | |
788 | 788 | | |
789 | 789 | | |
790 | | - | |
791 | 790 | | |
792 | 791 | | |
793 | 792 | | |
| |||
809 | 808 | | |
810 | 809 | | |
811 | 810 | | |
812 | | - | |
| 811 | + | |
813 | 812 | | |
814 | 813 | | |
815 | 814 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
| 48 | + | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| |||
163 | 163 | | |
164 | 164 | | |
165 | 165 | | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
180 | 180 | | |
181 | 181 | | |
182 | | - | |
| 182 | + | |
183 | 183 | | |
184 | 184 | | |
185 | 185 | | |
| |||
Lines changed: 2 additions & 2 deletions
Loading
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
98 | 98 | | |
0 commit comments