CVE-2023-32650
📋 TL;DR
An integer overflow vulnerability in GTKWave's FST_BL_GEOM parser allows memory corruption when processing malicious .fst files. This affects users who open untrusted waveform files with vulnerable 32-bit GTKWave binaries, potentially leading to arbitrary code execution.
💻 Affected Systems
- GTKWave
📦 What is this software?
Gtkwave by Tonybybell
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution with the privileges of the GTKWave user, potentially leading to full system compromise.
Likely Case
Application crash or denial of service when opening malicious files; code execution is possible but requires specific exploitation.
If Mitigated
Limited to denial of service if memory corruption cannot be leveraged for code execution due to mitigations like ASLR.
🎯 Exploit Status
Exploitation requires user interaction to open a malicious file. No public proof-of-concept has been disclosed as of the references.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Check vendor updates; patches may be available in newer releases or distributions like Debian.
Vendor Advisory: https://lists.debian.org/debian-lts-announce/2024/04/msg00007.html
Restart Required: No
Instructions:
1. Update GTKWave to a patched version from official sources. 2. For Debian systems, apply security updates via 'apt-get update && apt-get upgrade'. 3. Verify the fix by checking the version.
🔧 Temporary Workarounds
Use 64-bit GTKWave
allSwitch to 64-bit compiled versions of GTKWave, as the vulnerability is specific to 32-bit binaries.
Install 64-bit GTKWave from official repositories.
Restrict .fst File Handling
allLimit opening .fst files to trusted sources only; avoid files from unknown or untrusted origins.
🧯 If You Can't Patch
- Run GTKWave with reduced privileges (e.g., as a non-admin user) to limit impact of potential exploitation.
- Use application whitelisting to restrict execution of GTKWave to trusted environments only.
🔍 How to Verify
Check if Vulnerable:
Check if GTKWave version is 3.3.115 or earlier and if it's a 32-bit binary. On Linux, use 'file $(which gtkwave)' to check binary type.
Check Version:
gtkwave --version or check package manager (e.g., 'apt list --installed | grep gtkwave' on Debian).
Verify Fix Applied:
Update GTKWave and confirm the version is patched; test with known safe .fst files to ensure functionality.
📡 Detection & Monitoring
Log Indicators:
- Application crashes or abnormal exits of GTKWave when processing .fst files.
- System logs showing memory access violations related to GTKWave.
Network Indicators:
- No direct network indicators; focus on file transfer of .fst files from untrusted sources.
SIEM Query:
Search for process creation events for GTKWave followed by crash logs or file access to .fst extensions.
🔗 References
- https://lists.debian.org/debian-lts-announce/2024/04/msg00007.html
- https://talosintelligence.com/vulnerability_reports/TALOS-2023-1777
- https://lists.debian.org/debian-lts-announce/2024/04/msg00007.html
- https://talosintelligence.com/vulnerability_reports/TALOS-2023-1777
- https://www.talosintelligence.com/vulnerability_reports/TALOS-2023-1777