CVE-2023-37573
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
A specially made circuit waveform file can take over your computer if you open it in GTKWave.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free in the VCD get_vartoken realloc path of the default recoder parser allows an attacker-controlled .vcd file to corrupt heap state and achieve arbitrary code execution when the victim opens the file via the GTKWave GUI.
Why it matters to the business
Engineers and hardware teams that routinely open third-party waveform files risk silent compromise of their workstations, enabling data theft, supply-chain tampering, or further lateral movement inside design environments.
How an attack unfolds
An attacker creates a malicious .vcd file that triggers the use-after-free during recoder-mode parsing of variable tokens; the victim opens the file in GTKWave 3.3.115, the parser reallocates and frees memory while still referencing it, and attacker-controlled data is written into the freed chunk to hijack control flow.
How to fix it
Upgrade GTKWave to the first version containing a fix for the VCD recoder parser (currently unavailable in the provided data); until a patched build is released, open only trusted .vcd files inside a sandboxed or virtualized environment and consider disabling the recoder parser if an option exists.
How to confirm the fix worked
Confirm GTKWave version is newer than 3.3.115 and test that the recoder code path no longer dereferences freed memory when processing known-triggering .vcd samples; monitor upstream commits for the corrected realloc logic.
Typical attack path
- Craft a .vcd file that exercises the get_vartoken realloc path under recoder parsing
- Host or email the file to a target who uses GTKWave for waveform inspection
- Victim opens the file through the GUI
- Use-after-free triggers during token processing
- Arbitrary code execution on the local workstation
How to detect it
Review file-open logs and EDR telemetry for gtkwave processes loading .vcd files from untrusted locations; correlate with subsequent suspicious process creation, memory allocation anomalies, or crashes inside the recoder parser.
- gtkwave
- .vcd
What your security team should do
- Treat any untrusted .vcd file as a potential exploit carrier and enforce sandbox execution for GTKWave
- Block or heavily scrutinize inbound .vcd attachments at mail and file-sharing gateways
- Watch for future fixed versions from the GTKWave project and expedite deployment once released
- Add gtkwave to the list of high-risk engineering tools requiring application allow-listing or EDR coverage
The record
Multiple use-after-free vulnerabilities exist in the VCD get_vartoken realloc functionality of GTKWave 3.3.115. A specially crafted .vcd file can lead to arbitrary code execution. A victim would need to open a malicious file to trigger these vulnerabilities.This vulnerability concerns the use-after-free when triggered via the GUI's recoder (default) VCD parsing code.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | gtkwave | 0 | 3.3.98+really3.3.118-0+deb10u1 |
| Debian:11 | gtkwave | 0 | 3.3.104+really3.3.118-0+deb11u1 |
| Debian:12 | gtkwave | 0 | 3.3.118-0.1~deb12u1 |
| Debian:13 | gtkwave | 0 | 3.3.118-0.1 |
| Ubuntu:16.04:LTS | gtkwave | 0 | No fix |
| Ubuntu:18.04:LTS | gtkwave | 0 | No fix |
| Ubuntu:20.04:LTS | gtkwave | 0 | No fix |
| Ubuntu:22.04:LTS | gtkwave | 0 | No fix |
| Ubuntu:24.04:LTS | gtkwave | 0 | No fix |
| Ubuntu:24.10 | gtkwave | 0 | No fix |
| Ubuntu:25.04 | gtkwave | 0 | No fix |
| Ubuntu:25.10 | gtkwave | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | gtkwave | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | gtkwave | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | gtkwave | 0 | No fix |
Related vulnerabilities
- CVE-2023-39444 Multiple out-of-bounds write vulnerabilities exist in the LXT2 parsing functionality of… Also affects gtkwave
- CVE-2023-39317 Multiple integer overflow vulnerabilities exist in the LXT2 num_dict_entries… Also affects gtkwave
- CVE-2023-39414 Multiple integer underflow vulnerabilities exist in the LXT2 lxt2_rd_iter_radix shift… Also affects gtkwave
- CVE-2023-39413 Multiple integer underflow vulnerabilities exist in the LXT2 lxt2_rd_iter_radix shift… Also affects gtkwave
- CVE-2023-39443 Multiple out-of-bounds write vulnerabilities exist in the LXT2 parsing functionality of… Also affects gtkwave
- CVE-2023-39316 Multiple integer overflow vulnerabilities exist in the LXT2 num_dict_entries… Also affects gtkwave
- CVE-2023-39271 Multiple integer overflow vulnerabilities exist in the LXT2 facgeometry parsing… Also affects gtkwave
- CVE-2023-39273 Multiple integer overflow vulnerabilities exist in the LXT2 facgeometry parsing… Also affects gtkwave