## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-TIN-Z-CVE-2023-35086-POC
# CVE-2023-35086-POC
> 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 соответственно содержат уязвимость форматной строки в функции detwan.cgi службы httpd, которая может привести к выполнению кода при создании злоумышленником вредоносных данных. Уязвимость также затрагивает другие устройства ASUS, использующие службу httpd. Подробнее читайте здесь: подробности.
Ссылки:
* mitre report
* cve.report
## Poc
Уязвимость позволяет добиться RCE, однако PoC достигает только DoS, главным образом потому, что прошивка эмулировалась с помощью QEMU, и поэтому стек отличается от реального устройства. Предварительные требования:
* Значение заголовка 'Referer' должно содержать адрес целевого устройства
poc_crash.py
root@kitploit:~
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_mode`
* `logmessage_normal` — внешняя функция, предоставляемая libshared

Исходный код `logmessage_normal` можно найти в прошивке asuswrt-merlin, а именно в файле `asuswrt-merlin/release/src/router/shared/misc.c`, и, как можно заметить, она сохраняет содержимое `action_mode` в локальную переменную `buf`, которая, в свою очередь, используется в вызове `syslog`

Функция `syslog` из libc поддерживает форматные строки, так что здесь и кроется корень уязвимости
