CVE-2023-35992
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
A specially made data file can crash or take over the waveform viewing program when someone opens it, potentially letting an attacker access or control 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
Integer overflow in fstReaderIterBlocks2 vesc allocation when processing FST files in 32-bit GTKWave builds allows out-of-bounds memory writes, resulting in memory corruption.
Why it matters to the business
Opening a malicious waveform file can let an attacker take full control of the application and potentially the system, risking data theft, tampering, or disruption for engineering and verification teams that rely on the tool.
How an attack unfolds
An attacker crafts a specially malformed .fst file that triggers an integer overflow during block iteration and allocation. The victim opens the file with GTKWave (32-bit binary), causing the overflow to corrupt memory structures and allowing arbitrary code execution in the context of the application.
How to fix it
Upgrade GTKWave to a version that resolves the integer overflow in fstReaderIterBlocks2. If an update is unavailable, avoid opening untrusted .fst files and consider running the tool under a sandbox or with reduced privileges. Disable or remove 32-bit builds where possible.
How to confirm the fix worked
Confirm the installed GTKWave version is newer than 3.3.115 and test that specially crafted .fst files no longer trigger allocation overflows or crashes. Review build configuration to ensure 64-bit compilation where supported.
Typical attack path
- Attacker generates a malicious .fst file exploiting the vesc allocation integer overflow
- Attacker delivers the file via email, download link, or shared storage
- Victim opens the file using GTKWave compiled as 32-bit
- Overflow occurs during fstReaderIterBlocks2 processing, corrupting memory
- Attacker gains arbitrary code execution within the GTKWave process
How to detect it
Review file-access logs and process creation events for GTKWave opening .fst files from unexpected locations. Look for sudden crashes or memory corruption indicators in application logs shortly after file opens. Check for post-exploitation artifacts such as unexpected child processes or network connections originating from the GTKWave binary.
What your security team should do
- Immediately restrict opening of .fst files from untrusted sources
- Upgrade GTKWave to the latest patched release as soon as it becomes available
- Add file-type restrictions or sandboxing policies for waveform viewers in engineering environments
- Monitor for new fixed versions and update build pipelines accordingly
The record
An integer overflow vulnerability exists in the FST fstReaderIterBlocks2 vesc allocation functionality of GTKWave 3.3.115, when compiled as a 32-bit binary. A specially crafted .fst file can lead to memory corruption. A victim would need to open a malicious file to trigger this vulnerability.
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