Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
deco-filepush-disclosure — Divulgação e PoC de uma falha de leitura/escrita de arquivo como root no canal de depuração do TP-Link Deco XE75 Pro V3 (opcodes tmpsvr 0xC456/0xF0), com análise CVSS e descompilação do handler. | Kitploit
Ferramentas/GitHubGitHub/cplusplus17/deco-filepush-disclosure
Segurança de Sistemas EmbarcadosEscalada de PrivilégiosSegurança IoTAnálise de VulnerabilidadesExploraçãoEngenharia ReversaSegurança de Hardware e IoTPapers e Pesquisa

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Análise de Firmware
GitHubcplusplus17/deco-filepush-disclosure

deco-filepush-disclosure

Divulgação e PoC de uma falha de leitura/escrita de arquivo como root no canal de depuração do TP-Link Deco XE75 Pro V3 (opcodes tmpsvr 0xC456/0xF0), com análise CVSS e descompilação do handler.

Ver Repositório
23há 1 diaAinda não revisado

Deco XE75 Pro V3 — canal de depuração autenticado pelo proprietário: escrita arbitrária de ficheiros como root

Projeto VLAN complementar: alpha experimental de código-fonte com VLAN 30 fixa para o firmware/perfil exato do XE75 Pro V3. Requer ficheiros originais fornecidos pelo operador e não tem instalador geral nem imagem flashável. A VLAN de convidados 591 permanece por resolver; a aceitação final de arranque a frio, UI e isolamento de clientes com três unidades está incompleta. Ver estado atual.

Divulgação de investigação, TP-Link Deco XE75 Pro V3, firmware 1.5.0 Build 20260603 Rel.15804. Preparado para [email protected] e lançamento público em conjunto com a nossa implementação de VLAN IoT 802.1Q (deco-iot-vlan).

Resumo

O canal SSH de depuração autenticado pelo proprietário do Deco (Dropbear em TCP 20001, apenas encaminhamento direct-tcpip, autenticação por palavra-passe) alcança um serviço interno tmpsvr em 127.0.0.1:20002. Um dos seus handlers Lua, inner_file_push (opcode 0xC456), abre params.file em modo "w" e escreve params.content literalmente como root, sem lista de caminhos permitidos, sem limite de tamanho e sem redução de privilégios. Um opcode irmão (0xF0) fornece uma leitura de ficheiros como root correspondente. Em conjunto: leitura + escrita autenticadas de todo o sistema de ficheiros root, que num router é o dispositivo inteiro.

SSH :20001  (username = SHA1(owner_email), password = TP-Link account password)
  -> direct-tcpip -> 127.0.0.1:20002 (TMPv2)
     -> 0xC456 inner_file_push : io.open(file,"w"); write(content); close()   [root]
     -> 0x00F0 root file read  : byte-exact file read                          [root]

Impacto (verificado ao vivo, não destrutivo)

  • /etc/config é um ramfs gravável em tempo real → altere uma chave e o roteador a respeita.
  • /www é servido via HTTPS pelo uhttpd → os arquivos enviados ficam imediatamente acessíveis.
  • /tp_data/user_data é flash ubifs persistente → sobrevive ao reboot.
  • O cache de rotas do LuCI pode ser substituído por Lua do atacante, acionado via GET /cgi-bin/luci → execução de Lua como root → io.popen → execução arbitrária de binário como root.

Todas as quatro etapas foram executadas e revertidas na própria unidade principal do proprietário.

Por que isso é novo — e por que o tmpsvr continua sem correção 2 anos após o CCS'24 / Black Hat '24

A equipe UCR SecLab documentou publicamente o canal de depuração :20001 -> 127.0.0.1:20002 (tmpsvr) há dois anos no CCS 2024 — "Untangling the Knot: Breaking Access Control in Home Wireless Mesh Networks" (e no Black Hat USA 2024 — "Fallen Tower of Babel"). O ponto de entrada deles em modelos Deco mais antigos (X55, FW 1.2.2) era a fatoração de hostkeys RSA de 512 bits e o abuso de handlers tmpsvr não validados.

Diferenças observadas e handlers remanescentes neste firmware exato:

  • Eles aumentaram o tamanho da hostkey ssh-rsa de 512 bits para 2048 bits (uma chave compartilhada observada entre as três unidades mesh, SHA256:9feb3ac4...932a36, além de ecdsa-sha2-nistp521 por unidade), fechando o caminho de fatoração de 512 bits da palestra de 2024.
  • Os seguintes handlers de nível root estão presentes no firmware 1.5.0:
    1. Autenticação por senha em :20001 (svr_auth_uci) permanece ativa usando SHA1(owner_email) + a senha compartilhada da TP-Link ID.
    2. Opcode 0xC456 (inner_file_push) ainda abre qualquer caminho fornecido pelo chamador no modo "w" como root sem nenhuma validação de caminho.
    3. Opcode 0x00F0 ainda lê qualquer arquivo do sistema de arquivos como root.
    4. Até o opcode 0xC505 (tty2tcp/start) — o exato handler de injeção de comando /bin/sh -c sem aspas destacado no artigo de 2024 — continua presente no firmware de junho de 2026 (1.5.0) completamente sem correção.

Afetados (conforme observado)

  • Produto: TP-Link Deco XE75 Pro V3 (mesh de 3 unidades; uma unidade principal + dois slaves)
  • Firmware: 1.5.0 Build 20260603 Rel.15804
  • Superfície: TCP 20001 (SSH de depuração) acessível a partir da LAN; o handler está no userspace extraído da 1.5.0 (módulo luci/controller/admin/mobile_app/iot_device, inner_file_push).

Severidade (CVSS v3.1 + v4.0)

Apenas a alcançabilidade pela LAN foi demonstrada. Para o perfil observado de LAN apenas, usamos as variantes AV:A: v3.1 6.8 / v4.0 8.5. As pontuações AV:N abaixo são condicionais a um caminho de rede demonstrado; a alcançabilidade pela nuvem não foi verificada.

Esta é uma escalada para root pós-autenticação, com privilégios do proprietário — não um RCE não autenticado — as pontuações do perfil observado abaixo são 6.8 (v3.1) e 8.5 (v4.0). A justificativa completa e as inflações rejeitadas estão em docs/cvss-analysis.md.

CVSS v3.1 — avaliação apenas LAN 6.8 (Médio); variante remota condicional 7.2 (Alto):

CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H   = 7.2 (High)
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H   = 6.8 (Medium)   # if LAN-only

Chamadas decisivas: PR:H (o proprietário / conta TP-Link-ID é o principal administrativo do dispositivo) e S:U (o handler já é executado como root — nenhum limite de autoridade é cruzado). Um rascunho anterior pontuou 9.9 via PR:L + S:C; ambos são rejeitados.

CVSS v4.0 — avaliação apenas para LAN 8.5 (Alta); variante remota condicional 8.6 (Alta):

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   = 8.6 (High)
CVSS:4.0/AV:A/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N   = 8.5 (High)       # if LAN-only
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L   = 9.3 (Critical)   # with Subsequent-System LAN/mesh impact

O risco no mundo real — uma senha TP-Link-ID roubada/reutilizada convertendo-se em root persistente em toda a malha, além de MITM do tráfego dos clientes — pertence à narrativa (e às métricas Subsequent-System SC:H/SI:H/SA:L da v4.0), não a um vetor base v3.1 inflado.

Prova de conceito

poc/deco_filepush_poc.py — autocontido (stdlib + paramiko). Credenciais apenas via variáveis de ambiente DECO_EMAIL / DECO_PASSWORD. Os modos ao vivo exigem DECO_HOSTKEY, verificado de forma independente: base64 bruto, uma linha de chave pública, ou uma linha de chave de ssh-keyscan (comentários suportados). Uma varredura sozinha não autentica o dispositivo. A verificação HTTPS compara os bytes servidos, mas não verifica seu certificado. Exige-se exatamente um modo; uma verificação falhada termina com código de saída diferente de zero.

python3 poc/deco_filepush_poc.py --selftest        # offline framing sanity
[email protected] DECO_PASSWORD=*** DECO_HOSTKEY="$TRUSTED_DECO_HOSTKEY" \
  python3 poc/deco_filepush_poc.py --run           # write marker + readback + HTTPS check
[email protected] DECO_PASSWORD=*** DECO_HOSTKEY="$TRUSTED_DECO_HOSTKEY" \
  python3 poc/deco_filepush_poc.py --cleanup <nonce>   # overwrite marker with empty content

O PoC grava um único marcador inerte em /www/log_export (ramfs; também apagado no reboot), e então exige leitura de volta byte a byte através do próprio opcode de leitura de root do dispositivo e serviço HTTPS não modificado antes de reportar sucesso.

Resumo da reprodução (ao vivo, 2026-10-17)

Baixar ferramenta