{"id":"CVE-2026-31898","summary":"jsPDF has a PDF Object Injection via FreeText color","details":"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.","aliases":["GHSA-7x6v-j9x4-qf24"],"modified":"2026-08-12T03:30:40.744812116Z","published":"2026-03-18T03:03:43.469Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31898.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-116"]},"references":[{"type":"WEB","url":"https://github.com/parallax/jsPDF/blob/b1607a9391d4cd65ea7ade25998aea8345ae1be3/src/modules/annotations.js#L193-L208"},{"type":"WEB","url":"https://github.com/parallax/jsPDF/releases/tag/v4.2.1"},{"type":"WEB","url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-31898.json"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:7110"},{"type":"ADVISORY","url":"https://access.redhat.com/errata/RHSA-2026:7128"},{"type":"ADVISORY","url":"https://access.redhat.com/security/cve/CVE-2026-31898"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31898.json"},{"type":"ADVISORY","url":"https://github.com/parallax/jsPDF/security/advisories/GHSA-7x6v-j9x4-qf24"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31898"},{"type":"REPORT","url":"https://bugzilla.redhat.com/show_bug.cgi?id=2448547"},{"type":"FIX","url":"https://github.com/parallax/jsPDF/commit/4155c4819d5eca284168e51e0e1e81126b4f14b8"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/parallax/jspdf","events":[{"introduced":"0"},{"fixed":"4562ce8aa35bd5ecd98cd5e262e3da2af96476f6"},{"fixed":"4155c4819d5eca284168e51e0e1e81126b4f14b8"}],"database_specific":{"source":["CPE_RANGE","REFERENCES"],"cpe":"cpe:2.3:a:parall:jspdf:*:*:*:*:*:node.js:*:*","extracted_events":[{"introduced":"0"},{"fixed":"4.2.1"}]}}],"versions":["v4.2.0","v4.1.0","v4.0.0","v3.0.4","v3.0.3","v3.0.2","v3.0.1","v3.0.0","v2.5.2","v2.5.1","v2.5.0","v2.4.0","v2.3.1","v2.3.0","v2.2.0","v2.1.1","v2,1,0","v2.0.0","v1.5.3","v1.5.2","v1.5.1","v1.5.0","v1.4.1","v1.4.0","v.1.4.0","v1.3.5","1.3.4","v1.3.4","v1.3.3","v1.3.0","v1.2.61","v1.2.60","1.1.135","v1.0.272","v1.0.178","v1.0.150","v1.0.138","v1.0.119","v1.0.116","v1.0.115","v1.0.106","v0.9.0"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-31898.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N"}]}