CVE-2023-37446
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
Opening a specially made waveform file with an older version of a circuit-viewing tool can let an attacker take over the computer without any other action from the user.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write in the VCD variable definition parsing code of the vcd2lxt2 utility allows a malformed .vcd file to corrupt memory and achieve arbitrary code execution when the file is processed.
Why it matters to the business
Users or automated pipelines that convert waveform files with the affected utility risk silent compromise of engineer workstations or build systems, potentially leading to loss of intellectual property or insertion of persistent malware into design environments.
How an attack unfolds
An attacker crafts a .vcd file that triggers the out-of-bounds write inside the variable-definition section handler. The victim opens the file (or an automated process invokes vcd2lxt2 on it), causing the utility to write attacker-controlled data beyond allocated buffers and execute arbitrary code under the privileges of the invoking user.
How to fix it
Upgrade GTKWave to a version that corrects the VCD parsing logic in vcd2lxt2. If no patched release is available, replace the utility with an unaffected waveform converter or isolate file-conversion tasks inside a sandboxed or virtualized environment that cannot reach sensitive resources.
How to confirm the fix worked
Confirm the installed GTKWave binary reports a version containing the upstream fix for the VCD variable-definition handler; re-process a known-malicious test .vcd file inside an isolated environment and verify that no memory corruption or code execution occurs.
Typical attack path
- Attacker prepares a malicious .vcd file containing a corrupted variable-definition section sized to overflow internal buffers.
- Victim receives the file via email, download, or shared repository and opens it or runs vcd2lxt2 against it.
- vcd2lxt2 parses the malformed section, performs an out-of-bounds write, and transfers control to attacker-supplied shellcode.
- Attacker gains code execution on the victim machine and proceeds with further actions such as credential theft or lateral movement.
How to detect it
Search process-creation logs for invocations of vcd2lxt2 or gtkwave that reference externally supplied .vcd files; inspect crash or segmentation-fault reports on engineering workstations that coincide with .vcd file access; examine recent file-system artifacts with .vcd extensions that were created or downloaded shortly before anomalous process behavior.
What your security team should do
- Immediately restrict or disable the vcd2lxt2 utility on developer and CI systems until a fixed GTKWave package is deployed.
- Add .vcd file-type scanning to mail gateways and repository commit hooks to block or quarantine suspicious waveform files.
- Monitor for any remaining instances of GTKWave 3.3.115 or earlier and prioritize replacement.
The record
Multiple out-of-bounds read vulnerabilities exist in the VCD var definition section 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 out-of-bounds write when triggered via the vcd2lxt2 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