Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted input to FontForge user
-
ExploitDrive DlgCreate8 into error-return path
-
ImpactLeak heap buffer, gradual memory exhaustion
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Resource cleanup, leak prevention
|
| Exploitation Conditions | Exploitation requires a user to run FontForge v20230101 and process attacker-supplied input in the GUI such that the DlgCreate8 dialog routine (gdraw/gaskdlg.c) takes its error-return path, where the formatted buffer 'buf' is allocated but not freed; the patch confirms this by adding free(buf) before the return. The precise external input that drives DlgCreate8 to that error return is not described in the available sources. Limiting factors: user interaction is required (UI:R), the impact is a single small per-occurrence heap leak so appreciable availability impact depends on repeated triggering, and because FontForge is a local desktop editor the realistic access path is local file/input processing rather than a remote network service - contrary to the NVD AV:N rating. |
| Impact | Signals point consistently to a LOW real-world priority despite the moderate 6.5 base score. EPSS is 0.26% (18th percentile), there is no CISA KEV listing, and no public exploit or PoC reference is present in the input - the only references are the upstream patch (PR #5491) and a VulDB advisory. The vuln.today decision label is 'this_month,' i.e. routine patching rather than urgent. A key internal conflict undermines the NVD vector: it is scored AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H, yet FontForge is a local desktop GUI font editor and the flaw lives in DlgCreate8 (gdraw/gaskdlg.c), a dialog-creation routine - this strongly implies local, file-open-driven exploitation, not a network vector, so AV:N should be verified against the GUI/local nature of the product. The A:H rating also looks inflated for CWE-401: the patch adds a single free(buf) on one error-return path, so each trigger leaks one small buffer, which realistically yields gradual, repetition-dependent memory consumption rather than immediate high availability loss. Net: a genuine but low-impact memory-leak bug, not an emergency; patch on a normal cycle. |
| Exploit ScenarioDerived | An attacker supplies crafted input/font data to a victim running FontForge v20230101 in its GUI; when processing drives the DlgCreate8 dialog routine into its error-return path, a formatted buffer is allocated but never released (the fix in PR #5491 adds free(buf) before the return). Each occurrence leaks a small amount of heap, so meaningful impact requires the error path to be triggered repeatedly. No public exploit code or PoC reference is present in the available data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
A memory leak exists in FontForge 20230101 within the DlgCreate8 dialog routine in gdraw/gaskdlg.c, where a formatted message buffer is allocated but never released when the function takes its error-return path. The realistic exposure is a local user opening or processing attacker-supplied input in the GUI and repeatedly reaching that error path, producing cumulative heap growth that can degrade or crash the editor; the assessed vector (AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L) rates impact as availability-only and low, well below the NVD base score of 6.5. No public exploit code has been identified at time of analysis, EPSS is 0.26% (18th percentile), and there is no CISA KEV listing; an upstream fix exists as a pull request that adds the missing free().
RemediationAI
Apply the upstream fix by updating to a FontForge build that includes GitHub pull request https://github.com/fontforge/fontforge/pull/5491, which adds free(buf) before the NULL return in DlgCreate8; patch availability is listed as vendor-provided, but the specific released version/date containing the commit is not independently confirmed from the supplied data, so verify the built binary includes the change before considering the issue closed. Until such a build is deployed, the practical compensating control is to limit use of the affected release for opening untrusted or malformed font inputs in the GUI and to restart the editor if memory usage grows abnormally, accepting the trade-off that this reduces but does not eliminate the leak path. Reference the upstream PR and the VulDB advisory (https://vuldb.com/vuln/329675) for patch confirmation.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FontForge is a cross-platform outline font editor written in C, and gdraw/gaskdlg.c implements its GTK/X11-style dialog helpers. DlgCreate8 builds a dialog using a va_list of arguments, formatting a message into an allocated buffer 'buf'; when the routine hits its error branch it prints the message to stderr, marks the dialog done and returns NULL without calling free(buf). This is a classic CWE-401 (Missing Release of Memory after Effective Lifetime) defect in a manual-memory-management C codebase. The upstream pull request 5491 confirms the root cause and the fix: it inserts free(buf) immediately before the NULL return. The flaw affects the local desktop application, not a network service; the sources do not describe which specific user-supplied input drives DlgCreate8 into that error branch, so the precise trigger is not described in the available evidence.
Know when Fontforge gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
FontForge is a local GUI editor so AV:L with UI:R; one missed free leaks a small buffer per trigger, giving A:L and no C/I impact.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
DescriptionCVE.org
FontForge v20230101 was discovered to contain a memory leak via the component DlgCreate8.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Affected Products (CPE)CVE.org
FontForge 20190813 through 20190820 has a buffer overflow in PrefsUI_LoadPrefs in prefs.c. Rated critical severity (CVSS
FontForge 20190801 has a heap-based buffer overflow in the Type2NotDefSplines() function in splinesave.c. Rated high sev
FontForge 20190801 has a use-after-free in SFD_GetFontMetaData in sfd.c. Rated high severity (CVSS 8.8), this vulnerabil
uiutil.c in FontForge through 20170731 does not validate strings before launching the program specified by the BROWSER e
FontForge 20161012 is vulnerable to a heap-based buffer overflow in readcffset (parsettf.c) resulting in DoS or code exe
FontForge 20161012 is vulnerable to a heap-based buffer over-read in readttfcopyrights (parsettf.c) resulting in DoS or
FontForge 20161012 is vulnerable to a stack-based buffer overflow in addnibble (parsettf.c) resulting in DoS or code exe
FontForge 20161012 is vulnerable to a heap-based buffer over-read in PSCharStringToSplines (psread.c) resulting in DoS o
FontForge 20161012 is vulnerable to a buffer over-read in getsid (parsettf.c) resulting in DoS or code execution via a c
FontForge 20161012 is vulnerable to a buffer over-read in strnmatch (char.c) resulting in DoS or code execution via a cr
FontForge 20161012 is vulnerable to a buffer over-read in ValidatePostScriptFontName (parsettf.c) resulting in DoS or co
FontForge 20161012 is vulnerable to a heap-based buffer over-read in readcfftopdicts (parsettf.c) resulting in DoS or co
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB