CVE-2026-24040 json
jsPDF has a Shared State Race Condition in addJS Plugin
published 2026-02-02 9 mo ago modified 2026-09-10 1 mo ago also EUVD-2026-5292 , GHSA-cjw8-79x6-5cj4
- cvss
- 4.8
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 20%
- public exploits
- 0
- none known
Summary
jsPDF is a library to generate PDFs in JavaScript. Prior to 4.1.0, the addJS method in the jspdf Node.js build utilizes a shared module-scoped variable (text) to store JavaScript content. When used in a concurrent environment (e.g., a Node.js web server), this variable is shared across all requests. If multiple requests generate PDFs simultaneously, the JavaScript content intended for one user may be overwritten by a subsequent request before the document is generated. This results in Cross-User Data Leakage, where the PDF generated for User A contains the JavaScript payload (and any embedded sensitive data) intended for User B. Typically, this only affects server-side environments, although the same race conditions might occur if jsPDF runs client-side. The vulnerability has been fixed in jsPDF@4.1.0.
Patch / fix
- npm jspdf 4.1.0
- parall jspdf 4.1.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-24040 updated cvss 7.5
jsPDF: jsPDF: Cross-User Data Leakage via race condition in addJS method
-
Red Hat Advanced Cluster Security 4.8 advanced-cluster-security 1773235880fixed: vendor fix RHSA-2026:4466
-
Red Hat Advanced Cluster Security 4.9 advanced-cluster-security 1773235860fixed: vendor fix RHSA-2026:4467
-
Red Hat Advanced Cluster Security 4 advanced-cluster-security/rhacs-roxctl-rhel8, advanced-cluster-security/rhacs-rhel8-operator, advanced-cluster-security/rhacs-central-db-rhel8, advanced-cluster-security/rhacs-scanner-v4-rhel8, advanced-cluster-security/rhacs-scanner-v4-db-rhel8not affected: component not present
-
Red Hat Advanced Cluster Security 4.8 advanced-cluster-security 1771402244, advanced-cluster-security 1772474383, advanced-cluster-security 1773235880 Red Hat Advanced Cluster Security 4.9 advanced-cluster-security 1771401314, advanced-cluster-security 1772473062, advanced-cluster-security 1773235860not affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 9 mo ago
Exploit prediction
0.28% chance of exploitation in the next 30 days, higher than 20% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/parallax/jsPDF/security/advisories/GHSA-cjw8-79x6-5cj4 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N |
| CNA | 4.0 | 6.3 | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 4.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | jspdf | <4.1.0 |
4.1.0 |
Affected products
- parallax jsPDF
Classification
References
-
github.com
/parallax/jsPDF/commit/2863e5c26afef211a545e8c174ab4d5fce3b8c0e
web, patch
-
github.com
/parallax/jsPDF/security/advisories/GHSA-cjw8-79x6-5cj4
web, exploit, vendor-advisory
-
github.com
/parallax/jsPDF/releases/tag/v4.1.0
web, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2026-24040
advisory
-
github.com
/parallax/jsPDF
package
Sources
- CVE List CVE-2026-24040
- GitHub Advisory GHSA-cjw8-79x6-5cj4
- NVD CVE-2026-24040
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.