tinyobjloader-c Stack Buffer Overflow in MTL Material File Line Parsing
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| syoyo | tinyobjloader-c | unaffected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Syoyo | Tinyobjloader-c |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.174% probability within 30 days)
| 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. | 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 via memcpy(linebuf, p, p_len), guarded only by . 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 | tinyobjloader-c Stack Buffer Overflow in MTL Material File Line Parsing |
| Type | Values Removed | Values Added |
|---|---|---|
| Title | tinyobjloader-c Stack Buffer Overflow in MTL Material File Line Parsing | tinyobjloader-c - Stack Buffer Overflow in MTL Material File Line Parsing |
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Syoyo
Syoyo tinyobjloader-c |
|
| Vendors & Products |
Syoyo
Syoyo tinyobjloader-c |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| 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
|