CVE-2026-73194 in DBI
الملخص
بحسب VulDB • 15/08/2026
تسمح إصدارات DBI السابقة للإصدار 1.652 الخاصة بـ Perl بإجراء كتابة خارج حدود الذاكرة (Heap Out-of-Bounds Write) عبر وسيط رقمي غير مُتحقق من صحته، مما يؤدي إلى تعيين عداد الربط في مرحلة ما قبل التحليل (preparse).
تخصص مرحلة preparse سبعة بايتات للإخراج لكل بايط إدخال، وهو العرض الأقصى لتوسيع ':p99999'. يقوم فرع ':N' بتحليل الرقم باستخدام `atoi(src)` وتعيينه لعداد الربط دون أي تحقق من النطاق، لذا فإن عبارة تحتوي على ':2147483648' تترك العداد سالباً (-2147483648 مع glibc، حيث يحدث تجاوز في atoi). ثم يتم توسيع كل علامة استفهام '?' اللاحقة عبر `sprintf(start, ":p%d", idx++)` لتصبح ':p-2147483648'، أي 14 بايتاً بما فيها البايت الصفر النهائي (NUL terminator)، بينما الميزانية المحددة للذاكرة هي 7 بايتات. يختبر حد الوسيط الذي أُضيف في الإصدار 1.650 العداد مقابل الرقم 99,999، وهو شرط يمر به العداد السالب بسهولة.
أي متّصل يقوم بتحليل عبارة غير موثوقة مسبقاً إلى وسطاء من نمط ':pN' يحصل على كتابة خارج حدود الذاكرة (Heap Out-of-Bounds Write) تزداد مع عدد علامات الاستفهام '?' التي تتبع الوسيط المسموم. لا تتأثر أنماط الإرجاع '?' و '%s'، حيث تقارن الرقم المُحلل بالتسلسل المتوقع وتُخرج خطأً في حال عدم التطابق.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.