Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-77658— Dia: dia: stack buffer overflow in bus object via unvalidated handle count in project files

Quick assessment

Affected
GNOME Dia
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 Dia 图形编辑器处理来自 Dia XML 项目文件的“总线”(Network Bus)对象时,存在一个基于栈的缓冲区溢出漏洞。 在文件 中, 函数使用 从文件属性 读取总线句柄的数量,但未对其上限进行验证: 随后,当移动总线句柄时, 函数会在栈上分配两个临时数组: 由于 的值完全由攻击者通过项目文件控制,当该值足够大(例如 262144 或更高)时, 将消耗超出默认线程栈限制(在 Linux 上通常为 8 MB)的栈空间,从而导致栈溢出、SIGSEGV 信号错误,并可能引发栈帧或返回地址损坏。 攻击者可以在恶

CVSS 7.8 · High

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-77658

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Dia: dia: stack buffer overflow in bus object via unvalidated handle count in project files
Source: CVE Program / CVE List V5
Vulnerability 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
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
栈缓冲区溢出
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
GNOME Dia 0 ~ 0.98.0 -

II. Public POCs for CVE-2026-77658

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-77658

登录查看更多情报信息。

Vendor Advisories for CVE-2026-77658 (1)

Vendor Pages for CVE-2026-77658 (1)

Other References for CVE-2026-77658 (1)

Other References for CVE-2026-77658 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-77658

No comments yet


Leave a comment