Skip to main content

ThorVG CVE-2026-58496

| EUVDEUVD-2026-111405 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-27 GitHub_M
4.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Supply undersized font buffer to app
  2. Exploit
    App calls Text::load from memory
  3. Execution
    Out-of-bounds read in SfntLoader::gen
  4. Impact
    Crash or adjacent heap memory disclosure

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires the consuming application to load an attacker-controlled font payload smaller than four bytes directly from memory through ThorVG's public memory-loading API (e.g., tvg::Text::load(..., data, size, "ttf", true)) in a version prior to 1.0.7. A key limiting factor: loading the same malformed font via a file path uses mmap, whose page alignment typically masks the over-read, so the file-path code path is not reliably affected - the vulnerability is specifically exposed through the in-memory API. Impact is further limited to adjacent heap disclosure or a crash (no code execution), and the app must actually accept and parse untrusted font bytes; the NVD vector additionally marks UI:R, implying some victim interaction in that assessment.

Impact

This is a genuine but modest-priority issue, not a high-urgency emergency. The CWE-125 out-of-bounds read yields only limited impact: adjacent heap disclosure (C:L) or an application crash. There is a notable discrepancy in the severity signals - the NVD-style input vector is CVSS 4.3 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N) with UI:R, while the vendor's GHSA advisory rates it 5.3 with UI:N (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N); the difference hinges on whether victim interaction is required, which realistically depends on how the consuming application feeds data to the memory-loading API. No EPSS score and no KEV listing were provided in the input, so there is no signal of active or probable exploitation - exploitation status is 'no public exploit identified at time of analysis' in the strict sense, but note the GHSA advisory ships a documented reproduction (1-byte payload, ASan-caught) and an attached thorvg.zip, so a public PoC reference exists; it is not verified as working exploit code. The vuln.today Decision label is 'this_month', consistent with a patch-on-normal-cadence posture rather than act_now. Net: real and worth patching this month, but the limited technical impact (no code execution, no integrity impact, PR:N but memory-API-dependent) keeps it well below critical.

Exploit ScenarioDerived

An application using ThorVG < 1.0.7 accepts attacker-controlled font bytes (for example, an embedded TTF/OTF in a web-rendered animation or document) and passes them to the in-memory loader via tvg::Text::load. The attacker supplies a buffer shorter than four bytes, causing SfntLoader::gen to read past the allocation while checking the font-type magic, which can crash the process or leak adjacent heap data. A public PoC reference exists (documented reproduction steps plus an attached archive in the GHSA advisory); it is not verified as working exploit code.

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

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Out-of-bounds read in ThorVG's SFNT/TTF font loader (all versions before 1.0.7) lets an attacker who can supply a font buffer smaller than four bytes through the in-memory loading API, such as tvg::Text::load(..., data, size, "ttf", true), trigger a heap over-read in SfntLoader::gen. The result is limited to adjacent heap memory disclosure or an application crash, with no code execution path; the same malformed font delivered by file path is largely masked because mmap page alignment pads the read. This is not in CISA KEV and there is no confirmed active exploitation, but the GitHub advisory publishes a reproduction payload (a 1-byte buffer) that trips an ASan heap-buffer-overflow, and the issue is fixed in 1.0.7; overall it is a genuine but modest-priority parsing defect that matters mainly to applications that accept untrusted font bytes from memory.

RemediationAI

Vendor-released patch: ThorVG 1.0.7, published at https://github.com/thorvg/thorvg/releases/tag/v1.0.7, with the code fix in commit 1dc232a33535946b5eed5fd65e993b13226da0ca and full details in advisory GHSA-crfw-c34f-vqrj; upgrading to 1.0.7 or later is the complete fix and the vendor treats the added length check as the resolution. Where an immediate upgrade is not possible, the effective compensating control is at the integration layer rather than inside ThorVG: validate that any font buffer passed to tvg::Text::load (and equivalent memory-loading entry points) is at least four bytes long, and reject short payloads before they reach the parser, which stops the trigger but leaves the vulnerable library in place for other inputs and depends on the calling code being correctly patched. Routing font data through file-path loading instead of the memory API reduces exposure because mmap page alignment typically masks the over-read, at the cost of losing the direct in-memory workflow and relying on masking rather than on validation. Restricting font ingestion to trusted, well-sized assets and running AddressSanitizer builds in test pipelines will catch the over-read during fuzzing or QA. No fixed-version backport for older branches is documented in the available sources.

Affected VersionsENISA

thorvg < 1.0.7

Affected Packages

euvd thorvg fix: 1.0.7

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ThorVG is a vector graphics engine used for SVG and font rendering; its SFNT loader handles both TrueType (TTF) and OpenType (OTF) containers. SFNT-based fonts identify their flavor by a 32-bit tag in the first four bytes (0x00010000 or the ASCII 'true' for scalable TrueType, 0x4F54544F or 'OTTO' for CFF-based OpenType). In tvgSfntLoader.cpp, SfntLoader::gen computed that tag with data[0] << 24 | data[1] << 16 | data[2] << 8 | data[3] before verifying that the supplied buffer was at least four bytes long, which is the classic CWE-125 precondition: the length of attacker-influenced input is trusted rather than validated before indexed access. The upstream commit 1dc232a33535946b5eed5fd65e993b13226da0ca addresses this by guarding the tag computation and the reader-selection branches with a size check. Two delivery paths behave differently: reading from a file through mmap often rounds the mapping to a page boundary so the over-read lands inside mapped memory and stays invisible, whereas the public memory-loading API passes the caller's exact buffer and exposes the out-of-bounds access directly. Only adjacent heap disclosure or a crash is described in the advisory; no memory corruption write primitive is involved.

Know when Thorvg 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 (GitHub_M) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
vuln.today AI 6.5 MEDIUM

Malformed font can arrive over the network and the memory API parses it without auth or interaction (AV:N/AC:L/PR:N/UI:N); over-read yields limited heap disclosure (C:L) and possible crash (A:L), no integrity impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

1
Patch available
Oct 27, 2026 - 23:19 EUVD

DescriptionCVE.org

Thor Vector Graphics (ThorVG) is a production-ready vector graphics engine. Prior to 1.0.7, the SFNT/TTF font loader's SfntLoader::gen function in tvgSfntLoader.cpp reads data[0] through data[3] to identify the font type without first checking that the input buffer contains at least four bytes. Loading an undersized font directly from memory through public APIs such as tvg::Text::load causes an out-of-bounds read. Loading through a file path using mmap can mask the read because of page alignment; the memory-loading API directly exposes it. Depending on memory layout, a malformed short font may crash the consuming application or disclose adjacent heap memory. This issue is fixed in version 1.0.7.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
niche open-source vector graphics engine, limited production 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.2%
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

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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