CVE-2024-8374
NoneCVSS
—
EPSS
0.4%
Published
Sep 3, 2024
CISA due date
—
Cloudanix analysis
A problem in 3D printing preparation software lets attackers run their own programs on your computer if you open a specially made model file shared online.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Improper handling of the drop_to_buildplate property in 3MF files allows the value to be passed directly to Python eval() without sanitization, resulting in arbitrary code execution when the file is loaded.
Why it matters to the business
Attackers can compromise systems that process shared 3D model files, leading to potential data theft, ransomware deployment, or unauthorized access across environments that rely on this software for model handling; high ecosystem prevalence increases exposure risk.
How an attack unfolds
An attacker crafts a malicious 3MF ZIP archive containing a manipulated drop_to_buildplate property with injected Python code, uploads it to a 3D model database, and waits for a victim to load the file in the vulnerable software, triggering eval() and executing the payload.
How to fix it
Upgrade to a fixed version such as facebook/wangle (GIT) commit 5b3bceca875e4ea4ed9d14c20b20ce46c92c13c6; avoid loading untrusted 3MF files until patched.
How to confirm the fix worked
Confirm the software version is updated to the fixed commit; test by attempting to load a 3MF file with a safe drop_to_buildplate value and verify no code execution occurs.
Typical attack path
- Craft malicious 3MF file with unsanitized drop_to_buildplate value containing Python code
- Distribute the file via public 3D model sharing sites or direct sharing
- Victim loads the 3MF file in the affected software
- eval() executes the injected code, granting attacker control
How to detect it
Review logs for Python eval() calls or errors triggered during 3MF file parsing; inspect recent 3MF files for anomalous property values; check for unexpected processes or network activity following model imports.
What your security team should do
- Immediately apply the fixed commit 5b3bceca875e4ea4ed9d14c20b20ce46c92c13c6 across all instances
- Implement file scanning or sandboxing for incoming 3MF files
- Monitor for unusual process behavior after 3MF file loads
- Educate users on risks of downloading models from untrusted sources
The record
UltiMaker Cura slicer versions 5.7.0-beta.1 through 5.7.2 are vulnerable to code injection via the 3MF format reader (/plugins/ThreeMFReader.py). The vulnerability arises from improper handling of the drop_to_buildplate property within 3MF files, which are ZIP archives containing the model data. When a 3MF file is loaded in Cura, the value of the drop_to_buildplate property is passed to the Python eval() function without proper sanitization, allowing an attacker to execute arbitrary code by crafting a malicious 3MF file. This vulnerability poses a significant risk as 3MF files are commonly shared via 3D model databases.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Ubuntu:18.04:LTS | cura | 0 | No fix |
| Ubuntu:20.04:LTS | cura | 0 | No fix |
| Ubuntu:22.04:LTS | cura | 0 | No fix |
| Ubuntu:25.04 | cura | 0 | No fix |
| Ubuntu:25.10 | cura | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | cura | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | cura | 0 | No fix |