CVE-2026-71266 in tinyobjloader-c
Сводка
по VulDB • 05.08.2026
В функции tinyobjloader-c `tinyobj_parse_and_index_mtl_file()` (файл `tinyobj_loader_c.h`) каждая строка файла материала `.mtl` считывается в фиксированный 4096-байтовый буфер стека `linebuf` с помощью вызова `memcpy(linebuf, p, p_len)`, защита которого осуществляется только посредством проверки `assert(p_len < 4095)`. Поскольку макрос `assert()` при компиляции с флагом `-DNDEBUG` (стандартная настройка для релизных сборок) превращается в пустую операцию (no-op), специально созданный файл `.mtl`, содержащий строку (например, имя материала "newmtl") длиной более 4096 байт, приводит к переполнению буфера `linebuf` за его границы в соседнюю переменную стека `namebuf` и далее, что вызывает повреждение стека любого приложения, загружающего предоставленные злоумышленником файлы 3D-моделей или материалов. Аналогичная уязвимая логика продублирована во второй функции того же файла.
If you want to get best quality of vulnerability data, you may have to visit VulDB.