CVE-2023-37922

7.8 HIGH

📋 TL;DR

This vulnerability allows arbitrary code execution when GTKWave processes a specially crafted .vcd file. Attackers can exploit this by tricking users into opening malicious files, potentially gaining full control of the victim's system. Anyone using GTKWave to analyze VCD files is affected.

💻 Affected Systems

Products:
  • GTKWave
Versions: 3.3.115 and earlier
Operating Systems: Linux, Windows, macOS
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability triggers through vcd2lxt2 conversion utility when processing .vcd files.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining root/administrator privileges and persistent access.

🟠

Likely Case

Local privilege escalation leading to data theft, lateral movement, or ransomware deployment.

🟢

If Mitigated

Limited impact if file execution is restricted to isolated environments with proper sandboxing.

🌐 Internet-Facing: LOW
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires user interaction (opening malicious file). No public exploit code available as of analysis.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.3.116 or later

Vendor Advisory: https://lists.debian.org/debian-lts-announce/2024/04/msg00007.html

Restart Required: No

Instructions:

1. Download latest GTKWave from official repository. 2. Uninstall current version. 3. Install patched version. 4. Verify installation with version check.

🔧 Temporary Workarounds

Restrict VCD file processing

all

Limit GTKWave usage to trusted files only and avoid processing untrusted .vcd files.

Sandbox execution

linux

Run GTKWave in isolated container or sandbox environment.

docker run --rm -v $(pwd):/data gtkwave

🧯 If You Can't Patch

  • Disable vcd2lxt2 utility if not required.
  • Implement strict file validation for .vcd inputs.

🔍 How to Verify

Check if Vulnerable:

Check GTKWave version: gtkwave --version

Check Version:

gtkwave --version

Verify Fix Applied:

Confirm version is 3.3.116 or higher: gtkwave --version | grep -E '3\.3\.(11[6-9]|12[0-9]|[4-9][0-9])'

📡 Detection & Monitoring

Log Indicators:

  • Unusual process execution from GTKWave
  • Memory access violations in system logs

Network Indicators:

  • Outbound connections from GTKWave process

SIEM Query:

process_name:"gtkwave" AND (process_args:"*.vcd" OR process_args:"vcd2lxt2")

🔗 References

📤 Share & Export