CVE-2023-39235
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
Opening a specially prepared waveform file in this analysis 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
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds write during VZT block autosort when iterating lt->num_time_ticks in gtkwave allows arbitrary code execution upon opening a crafted .vzt file.
Why it matters to the business
An attacker who tricks a user into opening a malicious waveform file can gain full control of the affected system, leading to data theft, ransomware deployment, or lateral movement; the vulnerability remains unpatched in listed releases despite public exploit availability for over two years.
How an attack unfolds
An attacker creates a specially crafted .vzt file that triggers an out-of-bounds write inside the autosort loop; the file is delivered via email, download, or shared storage; the victim opens it with gtkwave; the write corrupts memory and redirects execution to attacker-controlled code.
How to fix it
Upgrade gtkwave to the latest available version as soon as a fix is released; in the interim, avoid opening any untrusted .vzt files and consider sandboxing or disabling the VZT reader entirely.
How to confirm the fix worked
Confirm gtkwave version is newer than 3.3.115 and test that the num_time_ticks loop bounds checks are present; attempt to open a known-good .vzt file and verify no crash or unexpected memory writes occur.
Typical attack path
- Craft malicious .vzt file exploiting num_time_ticks loop
- Deliver file to target via phishing or shared storage
- Victim opens file in gtkwave
- Trigger out-of-bounds write during VZT processing
- Achieve arbitrary code execution on the system
How to detect it
Review system logs and file-access records for gtkwave opening .vzt files from unusual locations; inspect crash dumps or memory corruption indicators around gtkwave process termination; correlate with known malicious file hashes if available from threat feeds.
- gtkwave
- .vzt
- vzt_rd_process_block
What your security team should do
- Immediately block opening of .vzt files from untrusted sources
- Monitor for new gtkwave releases and deploy once fixed versions are published
- Add gtkwave to application allow-listing with strict file-type controls
- Educate users on risks of opening waveform files from unknown origins
The record
Multiple out-of-bounds write vulnerabilities exist in the VZT vzt_rd_process_block autosort 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 when looping over `lt->num_time_ticks`.
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