
CVE-2023-35086 का POC केवल 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 से नीचे या बराबर हैं, उनमें httpd सेवा के detwan.cgi फ़ंक्शन में फ़ॉर्मेट स्ट्रिंग भेद्यता है जो कोड निष्पादन का कारण बन सकती है जब कोई हमलावर दुर्भावनापूर्ण डेटा तैयार करता है। यह भेद्यता httpd सेवा का उपयोग करने वाले अन्य ASUS डिवाइसों को भी प्रभावित करती है। अधिक विवरण के लिए यहाँ पढ़ें।
संदर्भ:
यह भेद्यता 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

यह भेद्यता /detwan.cgi URI पर GET या POST करके और action_mode HTTP पैरामीटर के तर्क के रूप में एक विशेष फ़ॉर्मेट स्ट्रिंग देकर ट्रिगर होती है।
httpd बाइनरी को ghidra में खोलने पर हम स्ट्रिंग "do_detwan_cgi" देख सकते हैं जिसे पते 0x492c4 द्वारा संदर्भित किया गया है

डीकंपाइलर फ़ंक्शन को सब कुछ दिखाए बिना विघटित करता है, लेकिन रोचक बिंदु पहले से ही मौजूद हैं:
FUN_0001b70c पैरामीटर action_mode निकालता हैlogmessage_normal libshared द्वारा उजागर एक बाहरी फ़ंक्शन है
logmessage_normal का स्रोत कोड asuswrt-merlin फ़र्मवेयर में पाया जा सकता है, विशेष रूप से फ़ाइल asuswrt-merlin/release/src/router/shared/misc.c में, और जैसा कि ध्यान दिया जा सकता है, यह action_mode की सामग्री को स्थानीय चर buf के अंदर सहेजता है, जो बदले में syslog कॉल पर उपयोग होता है

libc syslog फ़ॉर्मेट स्ट्रिंग्स का समर्थन करता है, इसलिए यहाँ भेद्यता की जड़ है
