https://github.com/tinyobjloader/tinyobjloader におけるスタックベースのバッファオーバーフロー。実験的バージョンにのみ影響し、予期しない結果を引き起こす可能性があります。
tinyobjloader は、コミット d56555b までのすべてのバージョンに影響を受けます。
修正は以下で提案されています:
386b73bb8c1a855236beb73b11f45f7feac4e03aリポジトリ:
この問題は、AddressSanitizer を使用して tinyobj_opt::LoadMtl 内のスタックバッファオーバーフローとして再現可能です。ここでは、過大な が固定サイズのローカルバッファ に書き込まれます。
newmtl トークンnamebufAddressSanitizer と UndefinedBehaviorSanitizer を有効にして概念実証をビルドします:
clang++ -std=c++17 -O1 -g -fsanitize=address,undefined -fno-omit-frame-pointer \
-I./tinyobjloader \
-I./tinyobjloader/experimental \
poc.cpp -o poc