CVE-2023-39317
High · 7.8CVSS
7.8
EPSS
0.4%
Published
Jan 8, 2024
CISA due date
—
Cloudanix analysis
A waveform analysis tool can be tricked into running attacker code simply by opening a specially made data file, which could let someone take over an engineer's computer.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Full Compromise
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow during allocation of the string_lens array in the LXT2 num_dict_entries parser allows out-of-bounds memory access and subsequent arbitrary code execution when a crafted waveform file is opened.
Why it matters to the business
Opening a malicious waveform file can allow an attacker to run arbitrary code on the analyst's workstation, potentially leading to data theft, lateral movement, or ransomware deployment in engineering environments that rely on legacy waveform viewers.
How an attack unfolds
An attacker creates a specially crafted LXT2 file that triggers an integer overflow in the string_lens allocation path. The victim opens the file with the vulnerable application, causing memory corruption that the attacker has arranged to redirect execution to attacker-controlled code.
How to fix it
Upgrade GTKWave to the latest available release that corrects the integer overflow in LXT2 dictionary handling. Until a fixed build is obtained, avoid opening untrusted .lxt2 files and consider sandboxing or disabling the application in high-risk environments.
How to confirm the fix worked
Confirm the installed version is newer than 3.3.115 and test that the application no longer crashes or exhibits memory corruption when processing known-malicious LXT2 test cases. Monitor vendor release notes for explicit mention of the num_dict_entries fix.
Typical attack path
- Craft malicious LXT2 file exploiting the string_lens integer overflow
- Deliver the file via email, download link, or shared storage
- Victim opens the file in the affected waveform viewer
- Overflow occurs during dictionary entry processing
- Memory corruption leads to arbitrary code execution
How to detect it
Review system logs and process execution records for GTKWave crashes or unexpected terminations immediately after LXT2 file access. Correlate file-open events with subsequent suspicious child processes or network activity.
- gtkwave
- .lxt2
What your security team should do
- Immediately restrict opening of .lxt2 files from untrusted sources
- Inventory all installations of the affected waveform viewer and prioritize patching
- Add application sandboxing or execution restrictions where feasible
- Watch for vendor updates addressing LXT2 parsing issues
The record
Multiple integer overflow vulnerabilities exist in the LXT2 num_dict_entries functionality of GTKWave 3.3.115. A specially crafted .lxt2 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 `string_lens` 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-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
- CVE-2023-39274 Multiple integer overflow vulnerabilities exist in the LXT2 facgeometry parsing… Also affects gtkwave