Assimp: Ten Memory-Safety CVEs Disclosed Across Half-Life MDL, glTF, and FBX Parsers
Key findings • Ten memory-safety CVEs disclosed together in Assimp up to v6.0.4 • Five bugs in the Half-Life 1 MDL loader, including four heap buffer overflows • Four null pointer derefer…

Key findings
- Ten memory-safety CVEs disclosed together in Assimp up to v6.0.4
- Five bugs in the Half-Life 1 MDL loader, including four heap buffer overflows
- Four null pointer dereferences and one heap overflow in the glTF parser
- One divide-by-zero in the FBX exporter's UV channel handler
- Public exploit code available for nine of the ten CVEs
- No patch released as of disclosure date; users should monitor the Assimp repo
On May 31–June 1, 2026, ten memory-safety vulnerabilities were disclosed together in Assimp (Open Asset Import Library), the widely used open-source 3D model parsing library, affecting all versions up to and including 6.0.4. The batch spans two major parser subsystems — the Half-Life 1 MDL loader and the glTF/FBX pipeline — and includes heap-based buffer overflows, null pointer dereferences, a use-after-free, a divide-by-zero, and an out-of-bounds read. Public exploit code is already available for nine of the ten CVEs, and no official patch has been released as of the disclosure date.
Half-Life 1 MDL Loader — Five Bugs in One Component
The largest cluster targets the Half-Life 1 MDL loader, specifically the HL1MDLLoader class in HL1MDLLoader.cpp. Four medium-severity heap-based buffer overflows were disclosed: CVE-2026-10231 (in extract_anim_value), CVE-2026-10230 (in read_animations), CVE-2026-10229 (in read_meshes), and CVE-2026-10232 — a use-after-free in the ASE file parser's aiNode::~aiNode destructor. A fifth low-severity bug, CVE-2026-10233, is an out-of-bounds read in read_sequence_infos. All five require local access, and exploit code has been made public for each.
glTF Parser — Null Pointer Dereferences and a Heap Overflow
Four low-severity null pointer dereferences were found in the glTF import code path. CVE-2026-10199 affects the glTF2::LazyDict operator in glTF2Asset.h, while CVE-2026-10198 resides in Assimp::glTFImporter::ImportMeshes in glTFImporter.cpp. CVE-2026-10197 is in the glTF2Importer::ImportEmbeddedTextures function of the glTF2 importer. A medium-severity heap-based buffer overflow, CVE-2026-10200, was found in the glTFCommon::CopyValue function in glTFCommon.h, triggered during 4x4 matrix parsing. All four glTF bugs have publicly available exploit code Vypr Intelligence.
FBX Exporter — Divide-by-Zero in UV Channel Handling
The FBX exporter component carries one low-severity bug: CVE-2026-10201, a divide-by-zero vulnerability in the FBXExporter::WriteObjects function in FBXExporter.cpp, affecting the UV channel handler. Exploit code has been published for this issue as well.
Impact and Response
All ten CVEs require local access to exploit, meaning an attacker must already have a foothold on the target system or trick a user into loading a crafted model file. Assimp is widely embedded in game engines, 3D modeling tools, and rendering pipelines, so a local attacker could crash the application or potentially achieve limited memory corruption. As of June 1, 2026, no patch has been released; the Assimp project has not yet published a fixed version. Users are advised to monitor the Assimp GitHub repository for updates and to avoid loading untrusted 3D model files in affected versions.
Why This Batch Matters
This disclosure event is notable for its density — ten CVEs across three parser components, all with public exploit code, and no patch available at disclosure time. The concentration of bugs in the Half-Life 1 MDL loader (five CVEs) suggests that parser needs particular scrutiny. Users of Assimp in security-sensitive contexts should treat model-file ingestion as a risk surface until a patched release arrives.