CVE-2026-77658 in Diaالمعلومات

الملخص

بحسب VulDB • 26/08/2026

توجد ثغرة من نوع تجاوز سعة المخزن المؤقت المعتمد على المكدس (stack-based buffer overflow) في محرر الرسوم البيانية Dia عند معالجة كائنات "Network Bus" الموجودة في ملفات مشاريع XML الخاصة بـ Dia.

في الملف `objects/network/bus.c`، تقوم الدالة `bus_load()` بقراءة عدد مقابض الحافلة من سمة الملف "bus_handles" باستخدام دالة `attribute_num_data()` دون التحقق من الحد الأقصى:

bus->num_handles = attribute_num_data(attr);

عند نقل مقبض حافلة لاحقاً، تخصص الدالة `bus_handle_moved()` مصفوفتين مؤقتتين على المكدس (stack):

parallel = (real *)g_alloca(num_handles * sizeof(real)); perp = (real *)g_alloca(num_handles * sizeof(real));

نظراً لأن قيمة `num_handles` تخضع بالكامل لسيطرة المهاجم عبر ملف المشروع، فإن القيم الكبيرة بما يكفي (على سبيل المثال 262144 أو أعلى) تتسبب في استهلاك `g_alloca()` لمساحة مكدس أكبر من حد المكدس الافتراضي للخيوط (عادةً ما يكون 8 ميغابايت على نظام Linux)، مما يؤدي إلى تجاوز سعة المخزن المؤقت المعتمد على المكدس، وحدث SIGSEGV، واحتمال تلف إطار المكدس / عنوان الإرجاع.

يمكن للمهاجم تضمين كائن Bus يحتوي على عدد مفرط من مقابض الحافلة في ملف `.dia` خبيث. يتطلب الاستغلال أن يقوم الضحية بفتح الملف في Dia (عبر مربع حوار الملفات، أو سطر الأوامر، أو ارتباطات الملفات) وتشغيل عملية نقل المقبض (نقل مقبض حافلة)، مما يؤدي إلى تنفيذ المسار البرمجي المتأثر بالثغرة.

يوجد نمط `g_alloca` نفسه في الملف `objects/Misc/tree.c` (المنسوخ من `bus.c`) ومن المرجح أن يكون عرضة لنفس فئة الهجوم عبر كائنات Tree.

الإصدارات المتضررة: Dia 0.98.0 والإصدارات الأقدم التي تحتوي على هذا الكود؛ تم تأكيد المشكلة في النسخة الرئيسية للمطورين (upstream master) اعتباراً من تاريخ 21-08-2026. تقرير المطورين الأصليين: https://gitlab.gnome.org/GNOME/dia/-/issues/581

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Fedora

حجز

21/08/2026

إفشاء

26/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-395769

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!