
Консультация по безопасности для уязвимости переполнения буфера в 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 копируется в стековый буфер без проверки длины, что позволяет перезаписать сохранённый обратный адрес и перенаправить поток управления программой. Поскольку бинарный файл скомпилирован без стековых канареек и без PIE, переполнение остаётся незамеченным, и выполнение может быть надёжно перенаправлено на код, расположенный по фиксированным адресам внутри бинарного файла.


Путём перезаписи сохранённого обратного адреса поток управления был перенаправлен на существующие функции внутри бинарного файла. Это было продемонстрировано вызовом sleep(2) (подтверждающим надёжный контроль над указателем инструкций через измеримую задержку в ответе устройства), процедурой перезагрузки системы, функцией выхода из сеанса и процедурой очистки журналов.


Поток управления был дополнительно перенаправлен на процедуру, отвечающую за запуск службы Telnet, что позволило включить Telnet на устройстве.

В результате аутентифицированный злоумышленник, имеющий сетевой доступ к целевому устройству, может перехватить поток выполнения процесса cstecgi.cgi и выполнить произвольные пути кода внутри бинарного файла, нарушая конфиденциальность, целостность и доступность устройства.