CVE-2026-42167: injeção SQL pré-autenticação no ProFTPD

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 simples
Essa 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
8.1
CVE-2026-42167
Pesquisadores
Valtteri Vuorikoski
Produto
Mod_Sql
Postgresql
Proftpd