CVE-2026-77658
Last modified
CVE-2026-77658 is a high-severity vulnerability rated 7.8/10 on the CVSS scale. 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. EPSS estimates a 0.14% chance of exploitation in the next 30 days.
Description
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
Metrics
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| GNOME | Dia | <= 0.98.0 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-77658?
How severe is CVE-2026-77658?
How do I fix CVE-2026-77658?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-77648In OpenStack Glance through 32.0.0, the /v2/tasks API accept…2.2
- CVE-2026-77649The internment crate 0.8.7 for Rust can trigger execution of…9.8
- CVE-2026-7765Incorrect authorization in the User Messages dashboard widge…5.3
- CVE-2026-77650The append-only-vec crate 0.1.9 for Rust can trigger executi…9.8
- CVE-2026-77651The arrayref crate 0.3.10 for Rust can trigger execution of …9.8
- CVE-2026-77652A heap-based buffer overflow vulnerability exists in the Dia…7.8
- CVE-2026-7766Kenik Camera management Panel is vulnerable to Path Traversa…8.3
- CVE-2026-7768@fastify/accepts-serializer cached serializer-selection resu…7.5
- CVE-2026-77680An algorithmic complexity flaw exists in libsoup's HTTP Rang…5.3
- CVE-2026-77681A vulnerability was identified in CodeAstro Online Job Porta…6.3
- CVE-2026-77683A security flaw has been discovered in Comfast CF-N1-S 2.6.0…9.9
- CVE-2026-77686A weakness has been identified in Dolibarr up to 23.0.4. Thi…5.4
Are you affected by CVE-2026-77658?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
