CVE-2023-37578
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
A bug in a popular tool that displays electronic signal recordings can let an attacker take over your computer if you open a specially made recording file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free condition in VCD get_vartoken realloc handling allows an attacker-supplied .vcd file to corrupt heap metadata during vcd2lxt conversion and achieve arbitrary code execution.
Why it matters to the business
Processing untrusted waveform files on developer or test systems can result in full host compromise, loss of intellectual property, and disruption of hardware-design workflows.
How an attack unfolds
An attacker creates a malformed .vcd file that triggers the realloc path inside get_vartoken; the victim runs the file through the vcd2lxt conversion utility, the dangling pointer is reused, and attacker-controlled code executes with the privileges of the converting process. Public exploit code is available.
How to fix it
Upgrade GTKWave to the latest release that resolves the realloc handling defect; if no patched version is yet published, replace or sandbox the vcd2lxt binary and avoid converting untrusted .vcd files.
How to confirm the fix worked
Confirm GTKWave version is newer than 3.3.115, run the vendor test suite against known-good and known-bad .vcd samples, and verify that vcd2lxt no longer crashes or produces heap corruption on the crafted input.
Typical attack path
- Attacker crafts a .vcd file that exercises the realloc path in get_vartoken
- Malicious file is delivered via email, download, or shared repository
- Victim invokes vcd2lxt on the file
- Use-after-free is triggered, enabling arbitrary code execution
How to detect it
Review process execution logs and file-access records for vcd2lxt invocations on externally sourced .vcd files; inspect system logs for unexpected crashes or segfaults of the conversion utility and look for subsequent suspicious child processes or network connections.
What your security team should do
- Immediately restrict vcd2lxt execution to trusted files only
- Apply the newest GTKWave package as soon as it becomes available
- Add vcd2lxt to application allow-listing or containerize its use
- Monitor for new fixed-version announcements from the GTKWave project
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 vcd2lxt conversion utility.
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