CVE-2026-42167: injeção SQL pré-autenticação no ProFTPD
Técnicas e Métodos de Ataque2026-08-05, 09:43
Uma vulnerabilidade de injeção SQL foi descoberta no módulo mod_sql do servidor FTP ProFTPD. É rastreada como CVE-2026-42167 e tem uma pontuação CVSS de 8,1.
O problema foi causado pela função is_escaped_text(). Ela considerava uma string como escapada de forma segura se ela:
• começasse com
'
• terminasse com '
• não contivesse outras aspas simplesEssa heurística foi adicionada originalmente para a chamada interna confiável mod_quotatab_sql, para evitar a escapamento duplicado. No entanto, o mod_sql a aplicou a todos os dados, incluindo valores recebidos do cliente FTP.
Como resultado, o servidor aceitava a entrada do usuário como parte de um comando SQL, como
USER '<SQL payload>'. O valor era passado para SQLNamedQuery, passava no teste como "já escapado" e era inserido na consulta sem chamar sql_escapestring.O ataque funcionou mesmo quando a autenticação falhou, se o servidor registrou os comandos USER através de SQLLog ERR_.
Quando o PostgreSQL foi usado, o atacante poderia usar consultas empilhadas para adicionar uma nova conta FTP à tabela SQL com UID 0 e diretório raiz
/, e depois se autenticar como essa conta. Se o banco de dados permitisse COPY TO PROGRAM ou mecanismo similar, a injeção SQL poderia levar diretamente à execução de comandos.No fix, os desenvolvedores separaram as fontes de dados: variáveis fornecidas pelo cliente agora são forçadamente escapadas antes de entrarem no resolver compartilhado. A falha existia desde novembro de 2020 e o patch foi introduzido no commit e6f72848.
Vulnerabilidades
Pesquisadores
Produto