
Доказательство концепции эксплойта для обхода аутентификации TP-Link TDDP (CVE-2026-0834), который отправляет специально сформированные пакеты для выполнения административных команд, таких как сброс к заводским настройкам и перезагрузка устройств в локальной сети.
Обход аутентификации в протоколе отладки устройств TP-Link (TDDP) (CVE-2026-0834)
Уязвимость в сервисе TDDP (TP-Link Device Debug Protocol) позволяет неаутентифицированным удалённым злоумышленникам в локальной сети выполнять административные команды. При обработке пакетов TDDPv2 значение pktLength, равное 0, приводит к пропуску процедуры расшифровки DES из-за вычисления по короткой схеме (short-circuit evaluation). Данные, отправленные за пределами 28-байтового заголовка пакета, помещаются в буфер, где ожидаются расшифрованные данные полезной нагрузки, что позволяет обойти аутентификацию и интерпретировать их как допустимые данные команды.
Злоумышленники могут использовать это для выполнения административных функций, включая сброс к заводским настройкам и перезагрузку устройства, без учётных данных.
Эта уязвимость затрагивает реализацию сервиса TDDP. Во всех проанализированных версиях прошивки был обнаружен уязвимый фрагмент кода в tddp_parserHandler(). Однако не на всех устройствах TP-Link TDDP включён по умолчанию.
Этот Proof of Concept (PoC) создан для TP-Link Archer C20 V6 (прошивка 0.9.1 Build 4.19/4.20). Смещения в памяти, структуры команд и методы эксплуатации могут отличаться на других моделях устройств или версиях прошивки.
Этот PoC выполняет сброс к заводским настройкам и перезагрузку целевого устройства. Вся конфигурация будет удалена.
$ python3 cve-2026-0834.py
[*] Target: 192.168.0.1:1040
[*] Sending factory reset command (0x49)...
[+] Response from ('192.168.0.1', 1040): 020701000000001000010000f876a43eae343258cfd6e426a435156bc3813de141e9a2162714388fe3af8e0c
[*] Waiting 1 second...
[*] Sending reboot command (0x4A)...
[+] Response from ('192.168.0.1', 1040): 0207010000000010000100009b0361efe2560a92e1e6feba5bfe21cec3813de141e9a216660a7b69eca4e234
Измените TARGET_IP в скрипте, чтобы он соответствовал IP-адресу целевого устройства.