CVE-2023-38583
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 analysis tool can let an attacker take over 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
Stack-based buffer overflow in LXT2 lxt2_rd_expand_integer_to_bits function allowing arbitrary code execution upon parsing a malformed .lxt2 file.
Why it matters to the business
Attackers can fully compromise analysis workstations or build environments that open untrusted waveform files, resulting in data theft, persistence, or lateral movement with moderate urgency given the age of the disclosure and available public exploits.
How an attack unfolds
An attacker crafts a malicious .lxt2 file that overflows the stack buffer in the integer expansion routine; the victim opens the file in GTKWave 3.3.115, triggering the overflow and allowing the attacker to execute arbitrary code under the privileges of the GTKWave process.
How to fix it
Upgrade GTKWave to the latest available version that resolves the LXT2 parsing issue; if no fixed release exists yet, avoid opening untrusted .lxt2 files and consider sandboxing or alternative waveform viewers until a patch is released.
How to confirm the fix worked
Confirm GTKWave version is newer than 3.3.115, test with known-good and known-malicious LXT2 samples in a controlled environment, and verify absence of the vulnerable expand_integer_to_bits code path via binary analysis or source inspection.
Typical attack path
- Craft a specially malformed .lxt2 file that triggers the integer-to-bits expansion overflow
- Deliver the file to the target via email, download link, or shared storage
- Victim opens the file using GTKWave
- Overflow occurs during file parsing, leading to arbitrary code execution
How to detect it
Review system logs and process execution history for GTKWave launches involving externally sourced .lxt2 files; look for segmentation faults, unexpected child processes, or anomalous memory usage immediately after file open events.
- gtkwave.*\.lxt2
- lxt2_rd_expand_integer_to_bits
- segmentation fault.*gtkwave
What your security team should do
- Immediately restrict opening of .lxt2 files from untrusted sources
- Monitor for new GTKWave releases and apply the fix as soon as published
- Add file-type sandboxing or application allow-listing for waveform analysis tools
- Scan historical .lxt2 artifacts for signs of prior exploitation attempts
The record
A stack-based buffer overflow vulnerability exists in the LXT2 lxt2_rd_expand_integer_to_bits function 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 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