Skip to main content

FontForge CVE-2025-50949

MEDIUM
Memory Leak (CWE-401)
2025-10-23 cve@mitre.org
6.5
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver crafted input to FontForge user
  2. Exploit
    Drive DlgCreate8 into error-return path
  3. Impact
    Leak 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (mitre) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
vuln.today AI 3.3 LOW

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

FontForge v20230101 was discovered to contain a memory leak via the component DlgCreate8.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Low
niche open-source desktop font editor, no server or enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Affected Products (CPE)CVE.org

cpe:2.3:a:fontforge:fontforge:2023-01-01:*:*:*:*:*:*:*
CVE-2019-15785 CRITICAL POC
9.8 Aug 29

FontForge 20190813 through 20190820 has a buffer overflow in PrefsUI_LoadPrefs in prefs.c. Rated critical severity (CVSS

CVE-2020-5496 HIGH POC
8.8 Jan 03

FontForge 20190801 has a heap-based buffer overflow in the Type2NotDefSplines() function in splinesave.c. Rated high sev

CVE-2020-5395 HIGH POC
8.8 Jan 03

FontForge 20190801 has a use-after-free in SFD_GetFontMetaData in sfd.c. Rated high severity (CVSS 8.8), this vulnerabil

CVE-2017-17521 HIGH
8.8 Dec 14

uiutil.c in FontForge through 20170731 does not validate strings before launching the program specified by the BROWSER e

CVE-2017-11574 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a heap-based buffer overflow in readcffset (parsettf.c) resulting in DoS or code exe

CVE-2017-11569 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a heap-based buffer over-read in readttfcopyrights (parsettf.c) resulting in DoS or

CVE-2017-11571 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a stack-based buffer overflow in addnibble (parsettf.c) resulting in DoS or code exe

CVE-2017-11568 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a heap-based buffer over-read in PSCharStringToSplines (psread.c) resulting in DoS o

CVE-2017-11577 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a buffer over-read in getsid (parsettf.c) resulting in DoS or code execution via a c

CVE-2017-11575 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a buffer over-read in strnmatch (char.c) resulting in DoS or code execution via a cr

CVE-2017-11573 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a buffer over-read in ValidatePostScriptFontName (parsettf.c) resulting in DoS or co

CVE-2017-11572 HIGH
7.8 Jul 23

FontForge 20161012 is vulnerable to a heap-based buffer over-read in readcfftopdicts (parsettf.c) resulting in DoS or co

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy