Safeguard
Vulnerability Analysis•

CVE-2023-35992: High Integer Overflow in GTKWave 32-bit Builds

GTKWave 3.3.115 32-bit builds have an integer overflow (7.0, High) in FST vesc allocation that corrupts memory. Update to 3.3.118 or your distro fix.

Safeguard Security Team
4 min read

CVE-2023-35992 is a high severity (7.0) integer overflow in GTKWave 3.3.115 when compiled as a 32-bit binary. A crafted FST file can corrupt memory through the vesc allocation. Debian's fixed packages are built from upstream 3.3.118, so update to that or your distribution's patched build.

What's affected

The record lists GTKWave 3.3.115, from Tony Bybell, as the affected version. It names no other release and gives no fixed version.

The Debian security tracker fills in the fix side. Its fixed packages are built from upstream 3.3.118:

  • Debian 10 (buster): 3.3.98+really3.3.118-0+deb10u1, in advisory DLA-3785-1.
  • Debian 11 (bullseye): 3.3.104+really3.3.118-0+deb11u1, in advisory DSA-5653-1.
  • Debian 12 (bookworm): 3.3.118-0.1~deb12u1, in advisory DSA-5653-1.
  • Debian testing and unstable carry 3.3.121 and 3.3.127.

So the record and the distribution disagree in how they describe the range. The record says 3.3.115. The fixed builds are 3.3.118. Releases between the two are not covered by either source. Treat 3.3.118 as the version to reach, and confirm against the Talos report, which I could not open because it blocked my request. Other distributions may use their own version strings, so read your vendor's advisory.

Unlike the other GTKWave entries, this one only applies to a 32-bit build. The record says it concerns the vesc allocation in fstReaderIterBlocks2 when the program is compiled as a 32-bit binary. Talos reported it as TALOS-2023-1790. A 64-bit build is not described as affected by this entry.

How to check if you're exposed

GTKWave is a desktop waveform viewer, so it usually sits on engineering workstations, lab machines and verification servers rather than production hosts. It also gets pulled into container images and build environments.

gtkwave --version
dpkg -s gtkwave | grep Version
brew list --versions gtkwave

Use the line that matches your system. On Debian or Ubuntu, compare the package version with the fixed builds listed above, and remember that distributions can backport fixes under older numbers, so read the package changelog for the CVE id if the number looks low.

Also look for shared directories where waveform files arrive, such as simulation output folders and vendor drops. The risk comes from opening a file, so knowing where untrusted files come from matters as much as the version number.

What to do now

  1. Find every machine, image and shared tool that has GTKWave installed, and record the version.
  2. Update to upstream 3.3.118 or later, or to your distribution's fixed package. On Debian, that means the update from DLA-3785-1 or DSA-5653-1.
  3. Until updated, do not open .fst files from sources you do not trust, and do not open them on a machine that holds credentials or source code.
  4. Treat waveform files that arrive from vendors, contractors or the internet as untrusted input, and open them on a disposable machine where you can.
  5. Check whether any of your copies are 32-bit builds, since this entry only applies to those.
  6. Re-check the version after the update, including inside container images that were built earlier.

Why it matters

The weakness is CWE-190, integer overflow or wraparound. The record scores it 7.0, a little lower than the 7.8 of the others, with high attack complexity. The record says it leads to memory corruption, not code execution, which also explains the lower score.

On a 32-bit build, a number that is comfortable on a 64-bit machine can wrap around, and so the allocation ends up smaller than it should be. That is why only 32-bit builds are named.

The vector is local, requires the user to open the file, and the vendor and distribution fixes are the same as for the group. It is not on CISA's Known Exploited Vulnerabilities list, and I found no claim of exploitation. The lesson is to check the build type as well as the version. Some Linux distributions and embedded systems still ship 32-bit builds.

Quick check

Am I affected on a 64-bit system?

The record describes the flaw for a 32-bit compiled binary. Check how your copy was built, and update either way.

Why is the score lower than the others?

It is 7.0 because the record says high complexity and memory corruption, not code execution.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

We email you a link to confirm, and only then add you to the list. Unsubscribe in one click. Privacy

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.