CVE-2023-38621
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
A bug in a popular waveform viewer can let attackers take over a computer when someone opens a specially made file.
- 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
Integer overflow during allocation of the `flags` array in VZT facgeometry parsing leads to undersized buffer and subsequent memory corruption that can be leveraged for arbitrary code execution.
Why it matters to the business
Users who open malicious waveform files can have their workstations compromised, enabling data theft, persistence, or further lateral movement inside the organization; the issue affects any environment that relies on this analysis tool for hardware or firmware debugging.
How an attack unfolds
An attacker crafts a VZT file that triggers the integer overflow when the facgeometry section is parsed; the victim opens the file with the vulnerable application, causing the overflow, memory corruption, and ultimately execution of attacker-supplied code.
How to fix it
Upgrade to a patched release of GTKWave once available; until then restrict the application to trusted files only and consider sandboxing or disabling the VZT parser.
How to confirm the fix worked
Confirm the installed version is newer than the vulnerable release; attempt to open a known test case that exercises facgeometry parsing and verify no crash or unexpected behavior occurs.
Typical attack path
- Generate malicious VZT file that triggers integer overflow in facgeometry flags allocation
- Deliver file via email, download link, or shared storage
- Victim opens file in the affected waveform viewer
- Overflow corrupts memory structures leading to code execution
How to detect it
Review system logs and EDR telemetry for GTKWave processes that open VZT files from unusual locations or that exhibit memory corruption signals such as crashes shortly after file load.
What your security team should do
- Block or sandbox opening of VZT files from untrusted sources
- Monitor vendor announcements for an official fixed release
- Add file-type and process-creation rules to EDR to alert on GTKWave handling external VZT content
The record
Multiple integer overflow vulnerabilities exist in the VZT facgeometry parsing 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 integer overflow when allocating the `flags` array.
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