Skip to content
KitploitKITPLOIT
FerramentasBlog
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
CVE-2026-42167 — Análise técnica e prova de conceito para CVE-2026-42167, uma injeção SQL crítica no ProFTPD mod_sql que permite bypass de autenticação, injeção de usuário backdoor e execução remota de código. | Kitploit
Ferramentas/GitHubGitHub/kaleth4/cve-2026-42167
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoRed Teaming
GitHubkaleth4/cve-2026-42167

CVE-2026-42167

Análise técnica e prova de conceito para CVE-2026-42167, uma injeção SQL crítica no ProFTPD mod_sql que permite bypass de autenticação, injeção de usuário backdoor e execução remota de código.

Ver Repositório
5há 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

CVE-2026-42167: SQL Injection no ProFTPD mod_sql

📋 Resumo Executivo

CVE-2026-42167 é uma vulnerabilidade crítica de injeção SQL no módulo mod_sql do ProFTPD que permite contorno de autenticação, injeção de usuários backdoor e execução remota de código (RCE).

AtributoValor
TipoInjeção SQL (CWE-89)
GravidadeAlta/Crítica
CVSS v38.1
Componentemod_sql no ProFTPD < 1.3.9a
Reportado porZeroPath Research
Data28 de abril de 2026

🔍 Descrição Técnica

O Problema: Validação Fraca em is_escaped_text()

O ProFTPD utiliza a função is_escaped_text() para determinar se um valor já foi saneado antes de inseri-lo em uma consulta SQL. A função assume que qualquer entrada que:

  • Comece com uma aspa simples '
  • Termine com uma aspa simples '
  • Não contenha aspas simples internas

...já foi escapada e não requer processamento adicional.

O Exploit

Um atacante pode enviar um nome de usuário malicioso como:

root@kitploit:~
USER ' || (SELECT 1) ||'

Quando inserido em uma consulta SQL como:

root@kitploit:~
INSERT "'%U', '%r', '%m'" activity_log

Produz-se:

root@kitploit:~
INSERT "'' || (SELECT 1) || ''" activity_log

O payload é executado como SQL arbitrário porque os operadores || concatenam strings vazias ao redor do comando injetado.


⚠️ Cenários de Impacto

1️⃣ Execução Remota de Código (RCE)

Requisitos:

  • Backend PostgreSQL
  • Usuário do banco de dados com privilégios de superusuário
  • Logging SQL habilitado com variáveis %U ou %{basename}

Técnica:

root@kitploit:~
COPY (SELECT 1) TO PROGRAM 'comando_malicioso'

Executa comandos a nível de sistema operacional como o usuário postgres.

2️⃣ Contorno de Autenticação

Requisitos:

  • SQLAuthenticate habilitado
  • Logging SQL com variável %U em SQLLog ERR_* (pré-autenticação)

Técnica:

root@kitploit:~
INSERT INTO users (username, password, uid, homedir) 
VALUES ('attacker', 'password_hash', 0, '/')

O atacante injeta um usuário backdoor com uid=0 (root) e acesso a todo o sistema de arquivos.

3️⃣ Exfiltração de Dados

Requisitos:

  • Qualquer backend SQL
  • Logging SQL habilitado

Técnica: Injeção SQL cega baseada em tempo para extrair credenciais caractere por caractere.


📊 Vetores de Ataque

Variáveis Controladas pelo Atacante

VariávelSignificadoAlcance
%UNome de usuário original (antes da autenticação)Pré-auth
%ASenha de login anônimoPré-auth
%JParâmetros do comandoPré-auth
%mVerbo FTP (STOR, RETR, etc.)Pré-auth
%{basename}Componente do nome de arquivoPós-auth
%lResposta ident (RFC 1413)Pré-auth (se identd estiver disponível)

Rotas de Exploração

Pré-autenticação (mais crítica):

root@kitploit:~
%U + SQLLog ERR_* → Sem credenciais necessárias

Pós-autenticação:

root@kitploit:~
%{basename} + SQLLog STOR → Requer qualquer usuário FTP válido

🛡️ Mitigação e Solução

✅ Solução Recomendada

Atualizar imediatamente para ProFTPD 1.3.9a ou superior:

root@kitploit:~
# Verificar versão atual
proftpd -v

# Atualizar (exemplo para Debian/Ubuntu)
sudo apt-get update
sudo apt-get install proftpd-basic=1.3.9a-1

🔧 Mitigações Temporárias

Se não puder atualizar imediatamente:

  1. Desabilitar logging SQL:
root@kitploit:~
# Comentar ou remover estas linhas em proftpd.conf
# SQLLog * log_activity
# SQLLog ERR_* log_activity
  1. Aplicar princípio do menor privilégio:
root@kitploit:~
-- No PostgreSQL, criar usuário sem privilégios de superusuário
CREATE USER proftpd_user WITH PASSWORD 'secure_password';
GRANT SELECT, INSERT ON activity_log TO proftpd_user;
-- NÃO conceder SUPERUSER
  1. Monitoramento de tentativas de exploit:
root@kitploit:~
TraceLog /var/log/proftpd/trace.log
Trace sql:17

🔎 Verificação de Vulnerabilidade

Indicador de Comprometimento

Procurar nos logs de trace do ProFTPD (com Trace sql:17 habilitado):

root@kitploit:~
text 'payload' is already escaped, skipping escaping it again

Esta mensagem indica que uma tentativa de bypass foi processada pelo motor vulnerável.

Comando para Verificar

root@kitploit:~
# Habilitar traces detalhados
echo "Trace sql:17" >> /etc/proftpd/proftpd.conf

# Reiniciar ProFTPD
sudo systemctl restart proftpd

# Monitorar logs
tail -f /var/log/proftpd/trace.log | grep "already escaped"

📦 Informações de Versões

VersãoEstado
< 1.3.9❌ Vulnerável
1.3.9❌ Vulnerável
≥ 1.3.9a✅ Corrigido
≥ 1.3.10rc1✅ Corrigido

🧪 Prova de Conceito (PoC)

Repositório Oficial

GitHub: ZeroPathAI/proftpd-CVE-2026-42167-poc

Configuração Rápida com Docker

root@kitploit:~
# Clonar repositório
git clone https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc.git
cd proftpd-CVE-2026-42167-poc

# Requisitos
# - Docker
# - Git
# - Python 3.10+
# - uv (gerenciador de pacotes Python)

# Configurar ambiente vulnerável
cd setup
./setup.sh

# Executar PoCs
cd ../pocs
python3 preauth_user_backdoor.py      # Injetar usuário backdoor (pré-auth)
python3 preauth_user_rce.py           # RCE via COPY TO PROGRAM (pré-auth)
python3 postauth_stor_backdoor.py     # Injetar usuário (pós-auth)
python3 postauth_stor_rce.py          # RCE (pós-auth)

# Limpar
cd ../setup
./teardown.sh

📅 Cronologia

DataEvento
2026-03-28Vulnerabilidade reportada ao ProFTPD
2026-04-07Verificação e desenvolvimento do patch
2026-04-24CVE-2026-42167 atribuído
2026-04-27Patch liberado (commit af90843baf7dcb8c6be1e5261be2d0b5b5850673)
2026-04-27ProFTPD 1.3.9a lançado

📚 Referências

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-42167
  • Blog Técnico: https://zeropath.com/blog/proftpd-cve-2026-42167-auth-bypass-privesc-rce
  • Repositório PoC: https://github.com/ZeroPathAI/proftpd-CVE-2026-42167-poc
  • Notas de Lançamento: http://www.proftpd.org/docs/RELEASE_NOTES-1.3.10rc1
  • Discussão: https://github.com/proftpd/proftpd/issues/2052

⚡ Recomendações Finais

  1. Ação Imediata: Atualizar ProFTPD para 1.3.9a ou superior
  2. Auditoria: Revisar configurações de SQLLog em todos os servidores ProFTPD
  3. Privilégios: Garantir que usuários do banco de dados não tenham permissões de superusuário
  4. Monitoramento: Implementar alertas para tentativas de injeção SQL
  5. Patches: Manter um programa regular de aplicação de patches para todas as dependências

Última atualização: 28 de abril de 2026
Fonte: ZeroPath Research, MITRE CVE, NVD

Baixar ferramenta