CVE-2023-35956

7.8 HIGH

📋 TL;DR

This vulnerability allows arbitrary code execution when a user opens a malicious .fst file in GTKWave. Attackers can exploit heap-based buffer overflows in the fstReaderIterBlocks2 VCDATA parsing functionality to gain control of the victim's system. Anyone using GTKWave to open untrusted .fst files is affected.

💻 Affected Systems

Products:
  • GTKWave
Versions: Version 3.3.115 and potentially earlier versions
Operating Systems: Linux, Windows, macOS
Default Config Vulnerable: ⚠️ Yes
Notes: All installations that process .fst files are vulnerable by default. The vulnerability is triggered through the decompression function fastlz_decompress.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining the same privileges as the user running GTKWave, potentially leading to data theft, ransomware deployment, or lateral movement.

🟠

Likely Case

Local privilege escalation or arbitrary code execution in the context of the user opening the malicious file, enabling data exfiltration or further attacks.

🟢

If Mitigated

No impact if users only open trusted .fst files or if the application is sandboxed/run with minimal privileges.

🌐 Internet-Facing: LOW
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires user interaction (opening a malicious file). No public proof-of-concept has been identified, but the vulnerability details are publicly disclosed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check Debian security updates or upstream GTKWave repository for patched versions

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

Restart Required: No

Instructions:

1. Update GTKWave through your package manager (apt update && apt upgrade gtkwave on Debian/Ubuntu). 2. For source installations, download and compile the latest version from the official repository. 3. Verify the update was successful by checking the version.

🔧 Temporary Workarounds

Restrict .fst file handling

all

Configure system to only allow trusted .fst files to be opened with GTKWave

Run GTKWave with reduced privileges

linux

Execute GTKWave in a sandboxed environment or with minimal user permissions

sudo -u nobody gtkwave

🧯 If You Can't Patch

  • Implement application whitelisting to prevent execution of GTKWave
  • Use file integrity monitoring to detect unauthorized .fst files

🔍 How to Verify

Check if Vulnerable:

Check GTKWave version: gtkwave --version. If version is 3.3.115 or earlier, the system is likely vulnerable.

Check Version:

gtkwave --version

Verify Fix Applied:

After updating, run gtkwave --version to confirm version has changed from 3.3.115. Test with known safe .fst files to ensure functionality.

📡 Detection & Monitoring

Log Indicators:

  • Unexpected crashes of GTKWave process
  • Memory access violation errors in system logs

Network Indicators:

  • Unusual outbound connections from GTKWave process

SIEM Query:

Process:gtkwave AND (EventID:1000 OR EventID:1001) OR FileExtension:.fst AND ProcessCreation

🔗 References

📤 Share & Export