Description
tinyobjloader-c's tinyobj_parse_and_index_mtl_file() (tinyobj_loader_c.h) reads each line of a .mtl material file into a fixed 4096-byte stack buffer `linebuf` via memcpy(linebuf, p, p_len), guarded only by `assert(p_len < 4095)`. Because assert() compiles to a no-op under -DNDEBUG (standard for release builds), a crafted .mtl file containing a line (e.g. a "newmtl" material name) longer than 4096 bytes overflows linebuf into the adjacent stack variable namebuf and beyond, corrupting the stack of any application that loads attacker-supplied 3D model/material files. The identical vulnerable pattern is duplicated in a second function in the same file.
Published: 2026-08-05
Score: 7.8 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

tinyobjloader-c’s tinyobj_parse_and_index_mtl_file() reads each line of a .mtl material file into a 4096‑byte stack buffer linebuf via memcpy, guarded only by assert(p_len < 4095). Under release builds, assert is a no‑op, enabling an attacker to supply a line longer than 4096 bytes and overflow linebuf into adjacent namebuf and further on the stack. This stack corruption can allow an attacker to overwrite return addresses or other control data, leading to arbitrary code execution or a crash, thus providing a denial‑of‑service or exploitable execution pathway.

Affected Systems

The vulnerability affects the syoyo tinyobjloader-c library. Any application that links against this library and loads attacker‑supplied .mtl files is potentially impacted. No specific version numbers are listed, implying all releases containing the vulnerable parsing functions are affected.

Risk and Exploitability

The CVSS score of 7.8 indicates a high severity, and the lack of an EPSS rating does not diminish the threat because the flaw is readily exploitable with a crafted file. The vulnerability does not appear in the CISA KEV catalog, but the stack overflow can be triggered by a local attacker who can supply input to the application. The likely attack vector is the delivery of a malicious .mtl file through ordinary user‑controlled file loading.

Generated by OpenCVE AI on August 5, 2026 at 14:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the tinyobjloader-c library to a patched release that removes the fixed 4096‑byte buffer or adds bounds checking.
  • Validate all .mtl input lines to ensure they do not exceed 4095 characters before calling the parsing routine.
  • Compile or configure the application with stack protection mechanisms such as –fstack‑protector and canaries to detect and mitigate stack overflows.

Generated by OpenCVE AI on August 5, 2026 at 14:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 05 Aug 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 13:15:00 +0000

Type Values Removed Values Added
Description tinyobjloader-c's tinyobj_parse_and_index_mtl_file() (tinyobj_loader_c.h) reads each line of a .mtl material file into a fixed 4096-byte stack buffer `linebuf` via memcpy(linebuf, p, p_len), guarded only by `assert(p_len < 4095)`. Because assert() compiles to a no-op under -DNDEBUG (standard for release builds), a crafted .mtl file containing a line (e.g. a "newmtl" material name) longer than 4096 bytes overflows linebuf into the adjacent stack variable namebuf and beyond, corrupting the stack of any application that loads attacker-supplied 3D model/material files. The identical vulnerable pattern is duplicated in a second function in the same file.
Title tinyobjloader-c Stack Buffer Overflow in MTL Material File Line Parsing
Weaknesses CWE-121
References
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-05T15:40:58.880Z

Reserved: 2026-08-05T12:23:34.967Z

Link: CVE-2026-71266

cve-icon Vulnrichment

Updated: 2026-08-05T15:40:54.703Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T15:00:05Z

Weaknesses
  • CWE-121

    Stack-based Buffer Overflow