CVE-2022-33034

7.8 HIGH

📋 TL;DR

CVE-2022-33034 is a stack overflow vulnerability in LibreDWG's decode_r2007.c file that allows attackers to execute arbitrary code or cause denial of service by providing specially crafted DWG files. This affects users and applications that process DWG files with LibreDWG library versions 0.12.4.4608 and earlier. The vulnerability is triggered through the copy_bytes function when parsing malicious DWG files.

💻 Affected Systems

Products:
  • LibreDWG
Versions: v0.12.4.4608 and earlier versions
Operating Systems: Linux, Windows, macOS, BSD
Default Config Vulnerable: ⚠️ Yes
Notes: Any application or service using LibreDWG library to process DWG files is vulnerable. This includes CAD software, file converters, and web applications that handle DWG file uploads.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Remote code execution with the privileges of the LibreDWG process, potentially leading to complete system compromise if the process runs with elevated privileges.

🟠

Likely Case

Application crash and denial of service when processing malicious DWG files, potentially disrupting CAD workflows or automated processing systems.

🟢

If Mitigated

Limited impact with proper sandboxing and privilege separation, potentially only causing application crashes without system compromise.

🌐 Internet-Facing: MEDIUM - Risk exists if LibreDWG is used in web applications or services that accept user-uploaded DWG files, but requires specific file processing scenarios.
🏢 Internal Only: MEDIUM - Internal CAD workflows and automated processing systems using LibreDWG are vulnerable to malicious DWG files from both internal and external sources.

🎯 Exploit Status

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

Exploitation requires the victim to process a malicious DWG file. The vulnerability is in the core parsing logic, making reliable exploitation feasible. Proof-of-concept details are available in the GitHub issue.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v0.12.5 and later

Vendor Advisory: https://github.com/LibreDWG/libredwg/issues/494

Restart Required: Yes

Instructions:

1. Update LibreDWG to version 0.12.5 or later. 2. For Linux systems: Use package manager (apt/yum/dnf) to update libredwg packages. 3. For source installations: Download latest release from GitHub and rebuild. 4. Restart all applications and services using LibreDWG.

🔧 Temporary Workarounds

Input Validation and Sandboxing

all

Implement strict input validation for DWG files and run LibreDWG processes in sandboxed environments with limited privileges.

Disable R2007 DWG Support

all

If possible, disable processing of R2007 DWG files which trigger the vulnerable code path.

🧯 If You Can't Patch

  • Implement network segmentation to isolate systems using LibreDWG from untrusted networks
  • Deploy application allowlisting to prevent execution of unauthorized binaries and restrict file processing capabilities

🔍 How to Verify

Check if Vulnerable:

Check LibreDWG version: 'dwgread --version' or 'strings /path/to/libredwg.so | grep -i version'. If version is 0.12.4.4608 or earlier, system is vulnerable.

Check Version:

dwgread --version 2>/dev/null || strings $(ldconfig -p | grep libredwg | head -1 | awk '{print $4}') 2>/dev/null | grep -i version

Verify Fix Applied:

After update, verify version is 0.12.5 or later using 'dwgread --version'. Test with known safe DWG files to ensure functionality.

📡 Detection & Monitoring

Log Indicators:

  • Application crashes with segmentation faults or stack overflow errors when processing DWG files
  • Unusual memory consumption patterns in LibreDWG processes

Network Indicators:

  • Unexpected DWG file uploads to web applications
  • Network transfers of DWG files to internal systems

SIEM Query:

source="application_logs" AND (process="dwgread" OR process contains "libredwg") AND (message contains "segmentation fault" OR message contains "stack overflow" OR message contains "SIGSEGV")

🔗 References

📤 Share & Export