
Консультация по безопасности для уязвимости переполнения буфера в TOTOLINK a720r
Производитель: TOTOLINK
Сайт производителя: TOTOLINK
Модель: A720R
Версия прошивки: V4.1.5cu.630_B20250509
Адрес загрузки прошивки: TOTOLINK
Базовая оценка CVSS v4.0: 9.4 (критический)
Вектор: CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:P
В бинарном файле прошивки cstecgi.cgi присутствует переполнение буфера в стеке, которое позволяет аутентифицированному администратору перехватить управление потоком выполнения процесса и выполнить существующие ветки кода внутри бинарного файла. Уязвимость может быть вызвана отправкой специально сформированного запроса обработчику setMacFilterRules, содержащего чрезмерно длинное значение параметра desc, которое копируется в буфер стека фиксированного размера посредством strcpy() без какой-либо проверки границ, что приводит к перезаписи сохранённого адреса возврата.

Уязвимый код находится в бинарном файле cstecgi.cgi, где переданное значение desc копируется в буфер стека без проверки длины, что позволяет перезаписать сохранённый адрес возврата и перенаправить поток выполнения программы. Поскольку бинарный файл скомпилирован без стековых канареек и без PIE, переполнение остаётся незамеченным, и выполнение может быть надёжно перенаправлено на код, расположенный по фиксированным адресам внутри бинарного файла.


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


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

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