CVE-2023-37923
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
Opening a specially made waveform file with a common conversion tool can let an attacker take over your computer.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability allows an arbitrary memory write during sorted bsearch operations on a crafted VCD file processed by the vcd2lxt utility, resulting in arbitrary code execution on the local system.
Why it matters to the business
Attackers can gain full control of systems used to convert or view simulation waveform files, leading to potential data theft, malware deployment, or disruption of hardware design and verification workflows.
How an attack unfolds
An attacker crafts a malicious VCD file that triggers the sorted bsearch flaw inside vcd2lxt. The file is delivered to a victim who opens it with the conversion utility, causing memory corruption that executes attacker-supplied code. Public exploits are available and the issue has been known for over two years.
How to fix it
Disable or restrict use of the vcd2lxt utility on untrusted files. Monitor vendor releases for a patched version of GTKWave and apply it as soon as it becomes available. Consider sandboxing or replacing the tool with a safer alternative for waveform conversion.
How to confirm the fix worked
Verify the installed GTKWave version against the latest available release. Test vcd2lxt behavior with known-good and known-malicious sample files in an isolated environment to confirm the write primitive is no longer reachable.
Typical attack path
- Create a specially formatted VCD file that triggers the bsearch write primitive
- Deliver the file via email, download link, or shared repository
- Victim executes vcd2lxt on the malicious file
- Memory corruption occurs and attacker payload executes
How to detect it
Review process execution logs for vcd2lxt invocations on files from external or untrusted sources. Monitor for unexpected crashes or child processes spawned by vcd2lxt. Examine file-access and command-line history for .vcd files processed shortly before anomalous activity.
- vcd2lxt
- .vcd
- vcd2lxt.exe
What your security team should do
- Immediately restrict execution of vcd2lxt to trusted files only
- Add vcd2lxt to application allow-listing or endpoint controls
- Scan internal repositories and build pipelines for usage of the utility
- Subscribe to GTKWave release notifications for patch availability
The record
Multiple arbitrary write vulnerabilities exist in the VCD sorted bsearch 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 arbitrary write 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