CVE-2026-25940: jsPDF's PDF Injection in AcroForm module allows Arbitrary JavaScript Execution (RadioButton.createOption and "AS" property)
jsPDF is a library to generate PDFs in JavaScript. Prior to 4.2.0, 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. The vulnerability has been fixed in jsPDF@4.2.0. As a workaround, sanitize user input before passing it to the vulnerable API members.
Security readout for executives and security teams
Plain-English summary
Applications using jsPDF to create PDFs may let attackers hide malicious PDF JavaScript inside form field data if untrusted input reaches vulnerable AcroForm APIs. A victim must open the generated PDF and interact with a radio option. The vendor fixed this in jsPDF 4.2.0.
Executive priority
Treat this as urgent where jsPDF generates customer-facing or externally supplied PDFs. The issue is critical because malicious document behavior can cross trust boundaries, but urgency should be tied to whether your systems use vulnerable jsPDF AcroForm features with untrusted input.
Technical view
Before jsPDF 4.2.0, insufficient output encoding in the AcroForm module allows injection of arbitrary PDF objects, including JavaScript actions, through unsanitized properties or methods such as RadioButton.createOption and the AS property. The CVSS 3.1 score is 9.6 with user interaction required.
Likely exposure
Exposure is most likely in web apps, back-office tools, or document workflows that generate PDFs with jsPDF AcroForm fields from user-controlled or partner-controlled data. Only parallax jsPDF versions earlier than 4.2.0 are identified as affected in the provided sources.
Exploitation context
The source bundle does not show CISA KEV listing or cited evidence of active exploitation. Exploitation requires a crafted input path into vulnerable jsPDF AcroForm handling and a victim interaction with the generated PDF, specifically hovering over a radio option per the advisory description.
Researcher notes
Evidence is strongest for jsPDF before 4.2.0 and the AcroForm injection path described by the GitHub advisory. The bundle names CWE-116 and a fixing release, but does not provide broad exploitation telemetry. Validate actual reachability before declaring business exposure.
Mitigation direction
Upgrade jsPDF to version 4.2.0 or later.
Sanitize user input before passing it to vulnerable AcroForm API members.
Review vendor advisory and downstream Red Hat errata for package-specific guidance.
Prioritize remediation where PDFs are generated from untrusted external input.
Validation and detection
Inventory applications and build pipelines that include jsPDF.
Check dependency manifests and lockfiles for jsPDF versions earlier than 4.2.0.
Trace user-controlled data into AcroForm APIs, especially RadioButton.createOption and AS.
Confirm generated PDFs from untrusted data no longer contain injected interactive actions.
Verify downstream platform packages against applicable Red Hat advisories if used.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · medium confidence lookup
CWE-116: User-session and phishing behavior lookup
Client-side and session-facing weaknesses should be reviewed alongside initial-access and user-execution behaviors. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
5Timeline events
2ADP providers
9Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.