Description
cgltf through 1.15 contains a heap out-of-bounds read vulnerability in cgltf_accessor_unpack_floats() that advances the sparse values cursor by the base bufferView byteStride. Attackers can supply a crafted glTF or GLB file that passes cgltf_validate() to read adjacent heap memory into vertex data or crash applications.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| jkuhlmann | cgltf | ≤ 1.15 | — |
References
- https://hackmd.io/@haindpwn/cgltf-accessor-unpack-floats-sparse-oob technical-description
- https://github.com/jkuhlmann/cgltf/blob/360db1a95480fe102ae9c69b27c5d101167ff5ba/cgltf.h#L2436-L2441 technical-description
- https://github.com/jkuhlmann/cgltf/blob/360db1a95480fe102ae9c69b27c5d101167ff5ba/cgltf.h#L1612-L1619 technical-description
- https://github.com/jkuhlmann/cgltf product
- VulnCheck Advisory: cgltf through 1.15 Heap Out-of-Bounds Read via cgltf_accessor_unpack_floats() third-party-advisory