CVE-2023-35702
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
Opening a specially made waveform file in an older version of a popular circuit-viewing tool can let an attacker take over your 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
Stack-based buffer overflow in fstReaderVarint32 allows arbitrary code execution when parsing a malicious LEB128 varint value from a crafted .fst file.
Why it matters to the business
Compromise of engineering workstations or servers that open waveform files can lead to full system takeover, loss of proprietary design data, and disruption of hardware verification workflows; urgency is moderate given low EPSS and lack of known in-the-wild exploitation.
How an attack unfolds
An attacker crafts a .fst file containing an oversized LEB128 varint that overflows the stack buffer inside fstReaderVarint32. The victim opens the file with GTKWave, the overflow occurs during parsing, and attacker-controlled data on the stack is executed, achieving arbitrary code execution.
How to fix it
Update GTKWave to a version that contains a corrected fstReaderVarint32 implementation; if no patched release is yet available, avoid opening .fst files from untrusted sources and run the application under a restricted user account or sandbox.
How to confirm the fix worked
Confirm GTKWave binary no longer contains the vulnerable fstReaderVarint32 path by inspecting the updated source or running a fuzzer against the LEB128 parser; test that previously crashing .fst samples are rejected cleanly without memory corruption.
Typical attack path
- Create malicious .fst file with oversized LEB128 varint targeting fstReaderVarint32
- Deliver file via email, download link, or shared storage
- Victim opens file in GTKWave 3.3.115 or earlier
- Overflow triggers and attacker payload executes on the stack
- Establish persistence or exfiltrate data from the compromised host
How to detect it
Search endpoint logs and EDR telemetry for GTKWave processes that terminate abnormally after opening .fst files or that spawn unexpected child processes; review file-download and email-attachment logs for .fst files received from external sources around the time of any suspicious activity.
- gtkwave.exe
- gtkwave
- .fst
What your security team should do
- Block untrusted .fst files at email gateways and file-sharing services until a fixed GTKWave build is deployed
- Inventory all systems with GTKWave installed and prioritize patching of developer and lab machines
- Add .fst file type to application allow-listing policies where feasible
- Monitor for GTKWave process crashes or unexpected child process creation after .fst handling
The record
Multiple stack-based buffer overflow vulnerabilities exist in the FST LEB128 varint functionality of GTKWave 3.3.115. A specially crafted .fst file can lead to arbitrary code execution. A victim would need to open a malicious file to trigger these vulnerabilities.This vulnerability concerns the fstReaderVarint32 function.
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