CVE-2023-38649
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
Opening a specially made waveform file in GTKWave can let an attacker take over the computer.
- 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 during string copy in VZT decompression allows arbitrary code execution when a crafted .vzt file is processed.
Why it matters to the business
Attackers can gain full control of a workstation by tricking an engineer into opening a malicious waveform file, leading to potential theft of intellectual property or further network compromise; no fixed versions are published yet and the flaw has publicly available exploit code.
How an attack unfolds
An attacker creates a specially malformed .vzt file that triggers an unchecked string copy loop inside the VZT reader; when a victim opens the file in GTKWave the loop writes attacker-controlled data beyond buffer bounds and executes arbitrary code.
How to fix it
Upgrade GTKWave to the first patched release once published; in the interim avoid opening .vzt files from untrusted sources and run the application under a restricted user account or sandbox.
How to confirm the fix worked
Confirm GTKWave version is newer than 3.3.115, run vendor-supplied regression tests against known-good and crafted VZT samples, and verify that the decompression path no longer performs unbounded string copies.
Typical attack path
- Craft malicious .vzt file exploiting the decompression string-copy loop
- Deliver file via email, download link, or shared storage
- Victim opens the file with GTKWave
- Out-of-bounds write executes attacker-supplied payload
- Establish persistence or exfiltrate data
How to detect it
Review system logs for GTKWave processes opening .vzt files from unusual locations, unexpected child processes spawned by gtkwave, or crashes inside the VZT reader; correlate with file-creation timestamps around the same time.
What your security team should do
- Block or sandbox GTKWave execution on untrusted hosts until a fixed build is available
- Add .vzt file type to email and web-download security policies
- Monitor for new GTKWave releases and expedite deployment once published
- Train hardware and verification teams on the risk of opening waveform files from external parties
The record
Multiple out-of-bounds write vulnerabilities exist in the VZT vzt_rd_get_facname decompression functionality of GTKWave 3.3.115. A specially crafted .vzt 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 perfomed by the string copy loop.
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