
استشارة أمنية بشأن ثغرة تجاوز سعة المخزن المؤقت في TOTOLINK a720r
البائع: TOTOLINK
موقع البائع الإلكتروني: TOTOLINK
الطراز: A720R
إصدار البرنامج الثابت: V4.1.5cu.630_B20250509
رابط تحميل البرنامج الثابت: TOTOLINK
درجة الأساس CVSS v4.0: 8.7 (عالية)
المتجه: CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
توجد ثغرة تجاوز سعة المخزن المؤقت المستند إلى المكدس في ملف البرنامج الثابت cstecgi.cgi، مما يسمح لمسؤول مُصادَق باختطاف تدفق التحكم في العملية وتنفيذ مسارات تعليمات برمجية موجودة داخل الملف الثنائي. يمكن استغلال الثغرة عن طريق إرسال طلب مُصمَّم بعناية إلى معالج setMacFilterRules يحتوي على قيمة طويلة بشكل مفرط لمعامل desc، والتي يتم نسخها إلى مخزن مؤقت ثابت الحجم في المكدس عبر strcpy() دون أي فحص لحدود الحجم، مما يؤدي إلى الكتابة فوق عنوان الإرجاع المحفوظ.

يقع الكود القابل للاستغلال داخل الملف الثنائي cstecgi.cgi، حيث يتم نسخ القيمة المُدخلة لمعامل desc إلى مخزن مؤقت في المكدس دون التحقق من الطول، مما يسمح بالكتابة فوق عنوان الإرجاع المحفوظ وإعادة توجيه تدفق التحكم في البرنامج. نظرًا لأن الملف الثنائي مُجمَّع بدون حراس المكدس (stack canaries) وبدون PIE، فإن تجاوز السعة يمر دون اكتشاف، ويمكن إعادة توجيه التنفيذ بشكل موثوق إلى تعليمات برمجية موجودة في عناوين ثابتة داخل الملف الثنائي.


من خلال الكتابة فوق عنوان الإرجاع المحفوظ، تمت إعادة توجيه تدفق التحكم إلى دوال موجودة داخل الملف الثنائي. وقد تم إثبات ذلك من خلال استدعاء sleep(2) (مما يؤكد التحكم الموثوق في مؤشر التعليمات عبر تأخير قابل للقياس في استجابة الجهاز)، وروتين إعادة تشغيل النظام، ودالة تسجيل الخروج من الجلسة، وروتين مسح السجلات.


كما تمت إعادة توجيه تدفق التحكم إلى الروتين المسؤول عن تشغيل خدمة Telnet، مما أدى إلى تفعيل Telnet على الجهاز.

ونتيجة لذلك، يمكن لمهاجم مُصادَق لديه وصول شبكي إلى الجهاز المستهدف اختطاف تدفق تنفيذ عملية cstecgi.cgi وتنفيذ مسارات تعليمات برمجية عشوائية داخل الملف الثنائي، مما يعرض سرية الجهاز وسلامته وتوافره للخطر.