Sploitus

Exploit for CVE-2023-35086-POC

kitploit · 2026-09-03

Exploit Code

MARKDOWN71 lines
## 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
    

![poc.gif](https://assets.kitploit.com/production/public/readmes/33570/c74e57d73f557706013dd0fd1d6ea1087fc19d9ac165ffd3ba3b7120a2df09af.gif)

  


## подробности

Уязвимость срабатывает при выполнении GET или POST-запроса к URI `/detwan.cgi` и передаче специальной форматной строки в качестве аргумента HTTP-параметра `action_mode`.

Открыв бинарный файл httpd в Ghidra, можно увидеть строку "do_detwan_cgi", на которую ссылается адрес `0x492c4`

![t1.jpg](https://assets.kitploit.com/production/public/readmes/33570/bb27b3464b4d131e2d492f27f05e3729ed6979f2236c32442335227f77cc710d.jpg)

Декомпилятор разбирает функцию, не показывая всего, но интересные моменты уже видны:

  * `FUN_0001b70c` извлекает параметр `action_mode`
  * `logmessage_normal` — внешняя функция, предоставляемая libshared



![t2.jpg](https://assets.kitploit.com/production/public/readmes/33570/02aa278f303285c915702769ad429b72604d7e5f7a3a2e71d02293f4029dcb10.jpg)

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

![t3.jpg](https://assets.kitploit.com/production/public/readmes/33570/4735feb1221f6e9e1e5d957cd2d0d44aa52131ffa5f3c291d00d5507b6cc1951.jpg)

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

![t4.jpg](https://assets.kitploit.com/production/public/readmes/33570/1278da60d27c250413fd5a6c03eca434482c835e01ca15aba5df5106465b959b.jpg)