Vulnerability 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.
CVSS Score
HIGH
Related Weaknesses (CWE)
References
- https://github.com/syoyo/tinyobjloader-c
- https://github.com/syoyo/tinyobjloader-c/blob/master/tinyobj_loader_c.h
FAQ
What is CVE-2026-71266?
CVE-2026-71266 is a vulnerability with a CVSS score of 7.8 (HIGH). 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 o...
How severe is CVE-2026-71266?
CVE-2026-71266 has been rated HIGH with a CVSS base score of 7.8/10. Review the CVSS metrics above for detailed severity breakdown.
Is there a patch for CVE-2026-71266?
Check the references section above for vendor advisories and patch information. Review vendor security bulletins for remediation guidance.