CVE-2023-37574
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
A bug in waveform viewing software lets attackers take over a computer when a user opens a specially made data file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Application
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free condition in the VCD get_vartoken realloc path of the legacy GUI parser allows an attacker-controlled .vcd file to corrupt heap memory and achieve arbitrary code execution.
Why it matters to the business
Compromise of engineering workstations that analyze waveform files can result in theft of proprietary hardware designs, insertion of malicious code into development environments, and lateral movement into design or manufacturing networks.
How an attack unfolds
An attacker crafts a .vcd file that triggers the use-after-free during realloc in the legacy VCD parser; the victim opens the file through the GTKWave GUI, the parser processes the malicious token stream, and the freed memory is reused to execute attacker-supplied code.
How to fix it
Upgrade GTKWave to a version containing the fix for CVE-2023-37574; if no patched release is available, restrict use of the legacy VCD parser and prohibit opening untrusted .vcd files.
How to confirm the fix worked
Confirm GTKWave version is newer than 3.3.115 and that the get_vartoken realloc path has been hardened; attempt to open known-good and known-malicious .vcd samples in an isolated environment to verify absence of crashes or code execution.
Typical attack path
- Create malicious .vcd file that triggers UAF in get_vartoken realloc
- Deliver file via email, download, or shared storage
- Victim opens file using GTKWave GUI legacy VCD loader
- Heap corruption leads to arbitrary code execution
How to detect it
Review endpoint logs for GTKWave launches immediately followed by crashes or unexpected child processes; examine recent file-access history for .vcd files originating outside trusted design repositories.
What your security team should do
- Immediately block untrusted .vcd files from entering engineering networks
- Inventory all GTKWave installations and enforce updates or removal
- Add .vcd file-type restrictions to email gateways and file-sharing systems
- Monitor for GTKWave process anomalies on developer endpoints
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 legacy 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