{"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-04-10T05:42:12.672030Z","published":"2026-03-18T03:03:43.469Z","related":["CGA-h3mc-62rc-m8xf"],"database_specific":{"cna_assigner":"GitHub_M","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31898.json","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":"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":"FIX","url":"https://github.com/parallax/jsPDF/commit/4155c4819d5eca284168e51e0e1e81126b4f14b8"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/mrrio/jspdf","events":[{"introduced":"0"},{"fixed":"4562ce8aa35bd5ecd98cd5e262e3da2af96476f6"}],"database_specific":{"versions":[{"introduced":"0"},{"fixed":"4.2.1"}]}}],"versions":["1.1.135","1.3.4","v.1.4.0","v0.9.0","v1.0.106","v1.0.115","v1.0.116","v1.0.119","v1.0.138","v1.0.150","v1.0.178","v1.0.272","v1.2.60","v1.2.61","v1.3.0","v1.3.3","v1.3.4","v1.3.5","v1.4.0","v1.4.1","v1.5.0","v1.5.1","v1.5.2","v1.5.3","v2,1,0","v2.0.0","v2.1.1","v2.2.0","v2.3.0","v2.3.1","v2.4.0","v2.5.0","v2.5.1","v2.5.2","v3.0.0","v3.0.1","v3.0.2","v3.0.3","v3.0.4","v4.0.0","v4.1.0","v4.2.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31898.json"}},{"ranges":[{"type":"GIT","repo":"https://github.com/parallax/jspdf","events":[{"introduced":"0"},{"fixed":"4562ce8aa35bd5ecd98cd5e262e3da2af96476f6"}]}],"versions":["1.1.135","1.3.4","v.1.4.0","v0.9.0","v1.0.106","v1.0.115","v1.0.116","v1.0.119","v1.0.138","v1.0.150","v1.0.178","v1.0.272","v1.2.60","v1.2.61","v1.3.0","v1.3.3","v1.3.4","v1.3.5","v1.4.0","v1.4.1","v1.5.0","v1.5.1","v1.5.2","v1.5.3","v2,1,0","v2.0.0","v2.1.1","v2.2.0","v2.3.0","v2.3.1","v2.4.0","v2.5.0","v2.5.1","v2.5.2","v3.0.0","v3.0.1","v3.0.2","v3.0.3","v3.0.4","v4.0.0","v4.1.0","v4.2.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31898.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N"}]}