Skip to main content

Dia CVE-2026-77658

| EUVDEUVD-2026-66417 HIGH
Stack-based Buffer Overflow (CWE-121)
2026-08-26 fedora GHSA-ff24-wmrj-75w8
7.8
CVSS 3.1 · Vendor: fedora
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver malicious .dia file to victim
  2. Delivery
    Victim opens file in Dia
  3. Exploit
    bus_load() reads attacker-controlled bus_handles with no bounds check
  4. Execution
    Victim moves a bus handle in diagram
  5. Persist
    bus_handle_moved() calls g_alloca() with oversized allocation
  6. Impact
    Stack 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Dia 0 ≤0.98.0

Affected Packages

euvd dia no fix

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

Vendor (fedora) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.8 HIGH

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.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (fedora).

CVSS VectorVendor: fedora

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Low
niche desktop diagramming tool, limited enterprise deployment
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

Vendor 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

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy