Cloudanix VulnDB

CVE-2023-39316

High · 7.8

CVSS

7.8

EPSS

0.4%

Published

Jan 8, 2024

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

Opening a specially made waveform file in this analysis tool can let an attacker take over the computer.

Exploit Available
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 during allocation of the string_pointers array in LXT2 num_dict_entries parsing leads to memory corruption and arbitrary code execution.

Why it matters to the business

An attacker can gain full control of a user's workstation if the user opens a malicious waveform file, enabling data theft, persistence, or further lateral movement with moderate operational risk due to the age of the issue and low exploitation probability.

How an attack unfolds

An attacker creates a specially crafted .lxt2 file that triggers an integer overflow when GTKWave allocates the string_pointers array; the victim opens the file, causing memory corruption that allows the attacker to execute arbitrary code on the local system.

How to fix it

Upgrade GTKWave to a patched release that correctly handles integer sizes in LXT2 num_dict_entries processing; until available, avoid opening untrusted .lxt2 files and run the application under sandboxing or least-privilege restrictions.

How to confirm the fix worked

Test the updated binary with both benign and boundary-case .lxt2 files containing large dictionary entry counts to confirm absence of overflow during string_pointers allocation; verify process memory protections remain intact.

Typical attack path

  1. Craft malicious .lxt2 file containing oversized num_dict_entries values to trigger integer overflow
  2. Deliver the file to the target via email, download, or shared storage
  3. Victim opens the file using GTKWave
  4. Overflow corrupts memory structures leading to arbitrary code execution

How to detect it

Review file-access and process-creation logs for GTKWave invocations involving .lxt2 files from unusual locations or received recently; correlate with subsequent suspicious child processes or memory anomalies.

What your security team should do

  • Block or sandbox GTKWave execution when handling files from external sources
  • Inventory all instances of the affected software and prioritize removal or replacement where updates are unavailable
  • Educate users on risks of opening waveform files from untrusted origins

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_pointers` 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