
POC لـ CVE-2023-35086 هو DoS فقط
25 يوليو 2023، Altin (tin-z)، github.com/tin-z
البرامج الثابتة لأجهزة الراوتر ASUS RT-AX56U V2 وRT-AC86U ذات الإصدارات الأقل أو المساوية 3.0.0.4.386_50460 و3.0.0.4_386_51529 على التوالي تحتوي على ثغرة format string في دالة detwan.cgi في خدمة httpd يمكن أن تسبب تنفيذ كود عند قيام المهاجم ببناء بيانات خبيثة. تؤثر الثغرة أيضًا على أجهزة ASUS أخرى تستخدم خدمة httpd. اقرأ المزيد من التفاصيل.
المراجع:
تتيح الثغرة تحقيق RCE، بينما يحقق الـ PoC DoS فقط، وذلك بشكل أساسي لأن البرنامج الثابت تمت محاكاته باستخدام QEMU وبالتالي تكون المكدس مختلفة عن حالة الجهاز الحقيقي. المتطلبات الأساسية:
virtualenv --python=python3 .venv
source .venv/bin/activate
pip install hexdump
python poc_crash.py --HOST 127.0.0.1 --PORT 12234 --test
# output expected: [+] Target supports detwan.cgi
python poc_crash.py --HOST 127.0.0.1 --PORT 12234 --dos

تُستغل الثغرة عن طريق إرسال طلب GET أو POST إلى uri /detwan.cgi وإعطاء تنسيق سلسلة خاص كوسيط لمعامل HTTP action_mode.
من خلال فتح ثنائي httpd في ghidra يمكننا رؤية السلسلة "do_detwan_cgi" المشار إليها بالعنوان 0x492c4

يقوم المفكك بتفكيك الدالة دون إظهار كل شيء، لكن النقاط المثيرة للاهتمام موجودة بالفعل:
FUN_0001b70c يستخرج المعامل action_modelogmessage_normal هي دالة خارجية مكشوفة بواسطة libshared
يمكن العثور على الكود المصدري لـ logmessage_normal في البرنامج الثابت asuswrt-merlin، تحديدًا في الملف asuswrt-merlin/release/src/router/shared/misc.c، وكما يمكن ملاحظته، فإنه يحفظ محتوى action_mode داخل المتغير المحلي buf، والذي يُستخدم بدوره في استدعاء syslog

دالة syslog في libc تدعم تنسيق السلاسل، ومن هنا يكمن جذر الثغرة
