
Доказательство концепции для CVE-2026-29628 — переполнение буфера на основе стека в экспериментальном парсере tinyobjloader, с воспроизведением через ASan/UBSan и ссылкой на исправление.
Переполнение буфера на основе стека в https://github.com/tinyobjloader/tinyobjloader, затрагивает только экспериментальную версию, что может привести к непредвиденным результатам.
tinyobjloader затронут во всех версиях вплоть до коммита d56555b.
Исправление было предложено в:
386b73bb8c1a855236beb73b11f45f7feac4e03aРепозиторий:
Проблема воспроизводится под AddressSanitizer как переполнение буфера стека в tinyobj_opt::LoadMtl, где чрезмерно большой newmtl token записывается в локальный буфер фиксированного размера namebuf.
Соберите proof of concept с включёнными AddressSanitizer и UndefinedBehaviorSanitizer:
clang++ -std=c++17 -O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer \
-I./tinyobjloader \
-I./tinyobjloader/experimental \
poc.cpp -o poc