CVE-2020-28598

7.8 HIGH

📋 TL;DR

This vulnerability allows remote code execution through a specially crafted AMF file in PrusaSlicer. Attackers can exploit an out-of-bounds write in the stl_fix_normal_directions() function to execute arbitrary code. Users of PrusaSlicer 2.2.0 and development versions are affected.

💻 Affected Systems

Products:
  • Prusa Research PrusaSlicer
Versions: 2.2.0 and Master (commit 4b040b856)
Operating Systems: Windows, Linux, macOS
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in the Admesh library component used by PrusaSlicer for processing 3D model files.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining complete control over the victim's computer, potentially leading to data theft, ransomware deployment, or lateral movement within networks.

🟠

Likely Case

Local privilege escalation or arbitrary code execution in the context of the PrusaSlicer user, allowing file system access, data exfiltration, or installation of malware.

🟢

If Mitigated

Limited impact with proper file validation and sandboxing, potentially only causing application crashes or denial of service.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: MEDIUM

Exploitation requires user interaction to open a malicious AMF file. The vulnerability is well-documented with technical details available in the Talos Intelligence report.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.3.0 and later

Vendor Advisory: https://github.com/prusa3d/PrusaSlicer/releases

Restart Required: Yes

Instructions:

1. Download latest version from official PrusaSlicer website or GitHub. 2. Uninstall old version. 3. Install new version. 4. Restart computer.

🔧 Temporary Workarounds

Disable AMF file processing

all

Prevent PrusaSlicer from opening AMF files by modifying file associations

Windows: assoc .amf=
Linux: Remove .amf from mimeapps.list
macOS: Remove .amf from Launch Services

Sandbox execution

all

Run PrusaSlicer in a restricted environment

Windows: RunAs /netonly
Linux: firejail prusa-slicer
macOS: sandbox-exec -n no-network prusa-slicer

🧯 If You Can't Patch

  • Implement strict file validation policies to block untrusted AMF files
  • Use application whitelisting to restrict PrusaSlicer execution to trusted directories only

🔍 How to Verify

Check if Vulnerable:

Check PrusaSlicer version in Help > About menu or run 'prusa-slicer --version' in terminal

Check Version:

prusa-slicer --version

Verify Fix Applied:

Verify version is 2.3.0 or higher and test opening known safe AMF files

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with memory access violations
  • Unexpected child processes spawned from PrusaSlicer
  • AMF file processing errors

Network Indicators:

  • Outbound connections from PrusaSlicer to unexpected destinations
  • DNS requests for suspicious domains after file processing

SIEM Query:

process_name:"prusa-slicer.exe" AND (event_id:1000 OR event_id:1001) OR file_extension:".amf" AND process_name:"prusa-slicer.exe"

🔗 References

📤 Share & Export