CVE-2023-38653
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
A bug in a popular tool for viewing chip design waveforms lets attackers take over a computer if someone opens a specially made data file.
- 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
Integer overflow in VZT vzt_rd_block_vch_decode dict parsing when num_time_ticks is zero leads to memory corruption during .vzt file handling.
Why it matters to the business
Attackers can achieve arbitrary code execution on analyst workstations that process waveform data, risking theft of proprietary designs or lateral movement into engineering environments; low exploit prevalence reduces immediate urgency but unpatched installations remain exposed.
How an attack unfolds
An attacker crafts a malicious .vzt file that sets num_time_ticks to zero, causing an integer overflow during dictionary parsing; the victim opens the file in the affected waveform viewer, triggering memory corruption that can be leveraged for code execution.
How to fix it
Upgrade to a patched release of GTKWave once available from upstream; until then, avoid opening untrusted .vzt files and consider sandboxing or alternative viewers for external waveform data.
How to confirm the fix worked
Confirm exposure by attempting to open a test .vzt with num_time_ticks=0 under a debugger and observing memory corruption; after remediation, verify the parser rejects or safely handles the zero-value case without overflow.
Typical attack path
- Craft .vzt file with num_time_ticks set to zero to trigger integer overflow
- Deliver file via email, download link, or shared storage to target analyst
- Victim opens file in vulnerable GTKWave instance
- Parser overflows and corrupts memory, enabling payload execution
How to detect it
Review system and application logs for GTKWave crashes or segmentation faults immediately after .vzt file access; inspect recent file-open events for .vzt files from untrusted sources and correlate with memory-corruption indicators in crash dumps.
- gtkwave.*vzt_rd_block_vch_decode
- segmentation fault.*.vzt
- num_time_ticks
What your security team should do
- Block or quarantine .vzt attachments at email and file-share gateways until a fix is deployed
- Inventory all installations of the waveform viewer and prioritize patching when fixed versions are released
- Train engineering teams to treat external waveform files as untrusted
- Monitor for GTKWave crashes or memory errors when processing .vzt files
The record
Multiple integer overflow vulnerabilities exist in the VZT vzt_rd_block_vch_decode dict parsing functionality of GTKWave 3.3.115. A specially crafted .vzt file can lead to memory corruption. A victim would need to open a malicious file to trigger these vulnerabilities.This vulnerability concerns the integer overflow when num_time_ticks is zero.
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