CVE-2025-2591
📋 TL;DR
A divide-by-zero vulnerability in Assimp's MDL file parser allows remote attackers to cause denial of service by providing specially crafted Quake 1 model files. This affects applications using Assimp library versions 5.4.3 and potentially earlier to parse untrusted MDL files. The vulnerability is triggered when skinwidth or skinheight parameters are manipulated to zero.
💻 Affected Systems
- Open Asset Import Library (Assimp)
📦 What is this software?
Assimp by Assimp
⚠️ Risk & Real-World Impact
Worst Case
Application crash leading to denial of service, potentially disrupting services that rely on 3D model processing
Likely Case
Application instability or crash when processing malicious MDL files, requiring restart
If Mitigated
No impact if proper input validation or patched version is used
🎯 Exploit Status
Exploit requires delivering a malicious MDL file to be processed by vulnerable application
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in commit ab66a1674fcfac87aaba4c8b900b315ebc3e7dbd
Vendor Advisory: https://github.com/assimp/assimp/issues/6009
Restart Required: Yes
Instructions:
1. Update Assimp to latest version or apply commit ab66a1674fcfac87aaba4c8b900b315ebc3e7dbd
2. Recompile applications using Assimp
3. Restart affected services
🔧 Temporary Workarounds
Input validation
allValidate MDL file inputs before processing, reject files with zero skinwidth/skinheight
Disable MDL processing
allDisable MDL file format support if not required
🧯 If You Can't Patch
- Implement strict file type validation and reject untrusted MDL files
- Run Assimp in isolated/sandboxed environment with crash recovery mechanisms
🔍 How to Verify
Check if Vulnerable:
Check Assimp version and if MDL file processing is enabled
Check Version:
assimp version (if CLI installed) or check library version in code
Verify Fix Applied:
Verify Assimp version includes commit ab66a1674fcfac87aaba4c8b900b315ebc3e7dbd
📡 Detection & Monitoring
Log Indicators:
- Application crashes during MDL file processing
- Divide by zero errors in logs
Network Indicators:
- Unexpected MDL file uploads to services using Assimp
SIEM Query:
search 'assimp' AND ('crash' OR 'divide by zero' OR 'MDL')
🔗 References
- https://github.com/assimp/assimp/issues/6009
- https://github.com/assimp/assimp/issues/6009#issue-2877367021
- https://github.com/assimp/assimp/pull/6047
- https://github.com/assimp/assimp/pull/6047/commits/ab66a1674fcfac87aaba4c8b900b315ebc3e7dbd
- https://vuldb.com/?ctiid.300574
- https://vuldb.com/?id.300574
- https://vuldb.com/?submit.517781