Skip to main content

cgltf EUVDEUVD-2026-103472

| CVE-2026-112019 MEDIUM
Out-of-bounds Read (CWE-125)
2026-10-18 VulnCheck GHSA-wfq9-23x4-jh5f
6.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious glTF/GLB with sparse accessor
  2. Delivery
    Deliver file to victim application
  3. Exploit
    File passes cgltf_validate()
  4. Execution
    Cursor advanced by bufferView byteStride
  5. Persist
    Heap out-of-bounds read
  6. Impact
    Leak adjacent memory or crash

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 target application to parse an attacker-controlled glTF or GLB file using cgltf (version 1.15 or earlier) that invokes cgltf_accessor_unpack_floats() on a sparse accessor; the crafted file must define a sparse accessor whose base bufferView specifies a byteStride, which the code incorrectly uses to advance the sparse values cursor past the allocated buffer. The flaw is reachable even on files that pass cgltf_validate(), so input validation at that layer does not block it. Limiting factors: the vector is local and file-based (UI:P) - a user or automated pipeline must actively load the malicious asset; there is no remote or network-triggered path, and no code execution, so realistic impact is limited to application crashes and limited heap information disclosure into vertex data.

Impact

This is a moderate-risk memory-safety defect, not a top-tier emergency. The vendor-supplied CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H) correctly frames it as a local, file-driven issue: exploitation requires a victim to process an attacker-supplied glTF/GLB file (UI:P), so there is no remote, unauthenticated, network-facing path despite the serious-sounding 'heap out-of-bounds read.' The primary impact is availability (VA:H - crash/DoS of the consuming application) with only limited confidentiality exposure (VC:L - adjacent heap bytes leaked into vertex data), and no integrity impact. No EPSS score was provided, and the CVE is not listed in CISA KEV, so there is no evidence of active or widespread exploitation. A detailed public technical write-up (hackmd) and a VulnCheck advisory exist with exact source-line references, which lowers the barrier to building a trigger even though no packaged exploit code is explicitly indicated in the input. Signals are largely consistent: a low/local-vector CVSS, absence of KEV, and absence of EPSS all point to this being a real but defender-manageable bug whose true risk depends entirely on whether an application feeds untrusted 3D assets to cgltf. Note: the input conflates CWE-125 (out-of-bounds READ) with the 'Buffer Overflow' tag - the actual flaw is an over-read, not a write, which caps the realistic worst case at information disclosure and crashes rather than code execution.

Exploit ScenarioDerived

An attacker crafts a malicious glTF or GLB model that passes cgltf_validate() but declares a sparse accessor whose values cursor is advanced by the base bufferView byteStride, causing cgltf_accessor_unpack_floats() to read past the heap allocation. A victim opens or imports this model into a game engine, asset pipeline, or 3D viewer that embeds cgltf, leaking adjacent heap memory into parsed vertex data or crashing the application. A public technical write-up documenting the exact vulnerable code paths exists, lowering the effort to reproduce; no packaged weaponized exploit is confirmed in the provided data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet

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

Alert me

AnalysisAIv1 – Oct 18, 2026

Heap out-of-bounds read in cgltf through 1.15 can be triggered when an application parses an attacker-supplied glTF or GLB asset and calls cgltf_accessor_unpack_floats() on a sparse accessor whose base bufferView defines a byteStride. The crafted file can pass cgltf_validate(), so validation at that layer does not prevent the over-read, and the result is limited to application crashes and limited heap memory disclosure into vertex data. Exploitation is local and requires user interaction to load the malicious asset; no public exploit identified at time of analysis.

RemediationAI

No vendor-released patch identified at time of analysis. Until an upstream fix is available, applications that parse untrusted glTF/GLB assets should avoid calling cgltf_accessor_unpack_floats() on sparse accessors without an additional application-level check: reject or skip assets whose sparse accessor base bufferView specifies a nonzero byteStride, since that is the condition that drives the cursor past the allocated sparse values buffer. The trade-off is that some legitimate assets using byteStride on the base bufferView may be rejected, so this check should be scoped to the unpack path. Run asset parsing in a sandboxed or low-privilege worker process to contain crashes and limit heap data exposure, accepting the added process and performance overhead. Monitor the cgltf repository at https://github.com/jkuhlmann/cgltf and the VulnCheck advisory at https://www.vulncheck.com/advisories/cgltf-through-1.15-heap-out-of-bounds-read-via-cgltf-accessor-unpack-floats for a patched release, and update as soon as a fixed version is published.

Affected VersionsENISA

cgltf 0 ≤1.15

Affected Packages

euvd cgltf no fix

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

cgltf is a single-header C glTF/GLB loader used by graphics applications and asset pipelines. The defect is CWE-125 (out-of-bounds read) in cgltf_accessor_unpack_floats(): when unpacking a sparse accessor, the code advances the sparse values cursor using the base bufferView's byteStride rather than the sparse bufferView's own stride, causing reads beyond the allocated sparse values buffer. The referenced source lines in cgltf.h show the sparse accessor unpacking path and cursor arithmetic. Because the crafted asset can pass cgltf_validate(), applications relying only on that validation remain exposed. Per the independent assessment, the realistic impact is local, user-assisted parsing of a malicious file, with high availability impact from crashes and low confidentiality impact from adjacent heap bytes being copied into vertex data; there is no code execution path.

Know when Cgltf 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 (VulnCheck) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

Local file-parsing flaw requiring a victim to open a crafted asset (AV:L/UI:R/PR:N); over-read yields limited heap disclosure (C:L) and reliable crashes (A:H) with no integrity impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

cgltf through 1.15 contains a heap out-of-bounds read vulnerability in cgltf_accessor_unpack_floats() that advances the sparse values cursor by the base bufferView byteStride. Attackers can supply a crafted glTF or GLB file that passes cgltf_validate() to read adjacent heap memory into vertex data or crash applications.

Threat Intelligence Overview

Prevalence
Medium
popular single-header glTF loader widely embedded in graphics and game projects
Data Quality
4 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 N/A
Patch available No
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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
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