Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver malicious .dia file to victim
-
DeliveryVictim opens file in Dia
-
Exploitbus_load() reads attacker-controlled bus_handles with no bounds check
-
ExecutionVictim moves a bus handle in diagram
-
Persistbus_handle_moved() calls g_alloca() with oversized allocation
-
ImpactStack exhausted, SIGSEGV and potential return-address corruption
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Stack buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two sequential victim interactions: first, the victim must open a malicious .dia XML project file in Dia (via file dialog, command-line invocation, or OS file association); second, the victim must move a bus handle within the diagram, triggering the bus_handle_moved() code path where the unvalidated num_handles value drives the oversized g_alloca() calls. The file must contain a Network Bus object (or Tree object for the secondary path in tree.c) with bus_handles set to a sufficiently large value (262144 or higher on typical Linux with 8 MB stack). Exploitation is limited by: the two-step user interaction requirement (CVSS UI:R), the local attack vector requiring file delivery to the victim's machine (CVSS AV:L), the non-default state of having Bus or Tree objects present in the diagram, and the absence of any network-facing exposure. No special privileges, authentication, or non-default configuration of the operating system or Dia itself is required beyond the victim using the application normally. |
| Impact | The CVSS 3.1 score of 7.8 (High) with vector AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H accurately reflects the threat model: local file delivery with two-step user interaction (open file, then move a handle) is required, but no privileges are needed and no special configuration is required beyond using the application's normal diagramming workflow. The high C/I/A ratings are justified given that stack-frame corruption can redirect control flow. EPSS data was not provided; KEV status is absent, confirming no public exploitation has been reported to CISA. The technical depth of the GitLab issue (specific line numbers, example trigger values, secondary affected file) lowers the barrier to POC development significantly, making this a credible near-term risk despite the lack of a current exploit. Real-world blast radius is constrained by Dia's niche deployment footprint - this is not a server-side or network-exposed vulnerability - and the delivery model depends on social engineering to get a target to open a file and interact with a Bus or Tree object, which requires some victim cooperation beyond a single click. |
| Exploit ScenarioDerived | An attacker emails a crafted .dia file to a network engineer or architect who uses Dia professionally, embedding a Bus object with bus_handles set to 262144. When the victim opens the file and moves any bus handle during a normal diagram editing session, bus_handle_moved() executes the vulnerable g_alloca() calls, exhausting the stack and causing a SIGSEGV that - with additional exploit development beyond the disclosed crash - could be directed toward stack-frame corruption and arbitrary code execution. No public POC exists at time of analysis, but the GitLab issue provides line-level detail sufficient for a skilled researcher to build one. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 26, 2026
Stack-based buffer overflow in GNOME Dia diagram editor (0.98.0 and earlier) permits stack exhaustion and potential return-address corruption when a victim opens a crafted .dia XML file containing a Bus object with an attacker-controlled bus_handles value and then moves a handle in the diagram. The root cause - an unbounded g_alloca() call driven by an unvalidated file attribute - is also present in objects/Misc/tree.c via Tree objects, widening the attack surface. No public exploit or CISA KEV listing exists at time of analysis, but the GitLab issue provides sufficient technical detail for proof-of-concept development.
RemediationAI
No vendor-released patch has been identified at time of analysis; the upstream GitLab issue at https://gitlab.gnome.org/GNOME/dia/-/issues/581 confirms the issue on master but no fixed tagged release is noted. Users should refrain from opening .dia files received from untrusted sources, particularly those containing Network Bus or Tree objects. As a specific compensating control, OS-level file association policies can be configured to require explicit user confirmation before launching Dia from a file manager or mail client, reducing the risk of inadvertent activation. Organizations that package Dia via Flatpak or can apply Firejail sandboxing should do so to limit the consequence of stack corruption to a contained crash rather than host-level code execution. Monitor https://access.redhat.com/security/cve/CVE-2026-77658 and the upstream GitLab issue for patch availability, as Red Hat is tracking this independently.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-121 (Stack-based Buffer Overflow) is triggered through Dia's XML project file parser for Network Bus objects, implemented in objects/network/bus.c. The function bus_load() reads the 'bus_handles' attribute with attribute_num_data() and assigns it directly to bus->num_handles with no upper-bound check. Later, when the user moves a bus handle, bus_handle_moved() calls g_alloca() - GLib's stack-based allocator - twice: once for a 'parallel' array and once for a 'perp' array, each of size num_handles * sizeof(real). Because g_alloca() consumes stack space rather than heap memory, an attacker-supplied value of 262144 or greater causes the thread's stack (typically 8 MB on Linux) to be exceeded, producing SIGSEGV and potentially corrupting stack frames and return addresses. The CPE cpe:2.3:a:gnome:dia:*:*:*:*:*:*:*:* indicates all Dia versions carry this code. The identical vulnerability pattern was copied from bus.c into objects/Misc/tree.c, which is separately exploitable via Tree objects.
Know when Dia gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
AV:L because exploitation requires local file delivery and execution; UI:R for the two-step open-then-interact requirement; PR:N as no credentials or elevated privileges are needed to open a file.
Primary rating from Vendor (fedora).
CVSS VectorVendor: fedora
DescriptionCVE.org
A stack-based buffer overflow vulnerability exists in the Dia diagram editor when processing Network Bus objects from Dia XML project files.
In objects/network/bus.c, bus_load() reads the number of bus handles from the file attribute "bus_handles" using attribute_num_data() without validating an upper bound:
bus->num_handles = attribute_num_data(attr);
When a bus handle is subsequently moved, bus_handle_moved() allocates two temporary arrays on the stack:
parallel = (real *)g_alloca(num_handles * sizeof(real)); perp = (real *)g_alloca(num_handles * sizeof(real));
Because num_handles is fully attacker-controlled via the project file, sufficiently large values (for example 262144 or higher) cause g_alloca() to consume more stack space than the default thread stack limit (typically 8 MB on Linux), resulting in stack overflow, SIGSEGV, and potential stack frame / return-address corruption.
An attacker can embed a Bus object with an excessive bus_handles count in a malicious .dia file. Exploitation requires the victim to open the file in Dia (file dialog, command line, or file association) and trigger handle manipulation (moving a bus handle), which exercises the vulnerable code path.
The identical g_alloca pattern is present in objects/Misc/tree.c (copied from bus.c) and is likely vulnerable to the same class of attack via Tree objects.
Affected versions: Dia 0.98.0 and earlier versions containing this code; issue confirmed on upstream master as of 2026-08-21. Upstream report: https://gitlab.gnome.org/GNOME/dia/-/issues/581
Executive ViewAI
GNOME Dia diagram editor versions 0.98.0 and earlier contain a stack-based buffer overflow in Bus and Tree object handling that enables return-address corruption and potential code execution when users open crafted .dia files. Organizations using Dia for document creation face remote code execution risk if users interact with diagram files from untrusted sources. No patch is currently available, requiring immediate operational mitigations.
No vendor-released patch identified at time of analysis. Implement: (1) restrict Dia execution or limit to air-gapped systems only; (2) block .dia files at email gateways and web proxies; (3) run Dia in sandboxed environments if continued use is unavoidable; (4) deploy endpoint monitoring for anomalous Dia process behavior; (5) conduct security awareness training on risks of opening diagram files from unexpected sources.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
A stack-based buffer overflow occurs when a program writes more data to a buffer located on the stack than it was allocated to hold.
Heap-based buffer overflow in the Dia diagram editor's WPG file importer allows arbitrary code execution or process cras
When GNOME Dia before 2019-11-27 is launched with a filename argument that is not a valid codepoint in the current encod
Same weakness CWE-121 – Stack-based Buffer Overflow
View allSame technique Buffer Overflow
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Linux Enterprise Desktop 15 | Affected |
| SUSE Linux Enterprise Desktop 15 SP1 | Affected |
| SUSE Linux Enterprise Desktop 15 SP2 | Affected |
| SUSE Linux Enterprise Desktop 15 SP3 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP3 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 | Affected |
| SUSE Linux Enterprise Server 15 SP1 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP1 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP2 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP3 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP4 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP5 | Affected |
| SUSE Linux Enterprise Workstation Extension 15 SP6 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-66417
GHSA-ff24-wmrj-75w8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB