CVE-2017-16651
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Falha de exposição de arquivos no Roundcube Webmail que permite a um usuário autenticado ler arquivos arbitrários do sistema, incluindo arquivos de configuração com credenciais do banco de dados. Foi explorada como zero-day em novembro de 2017 antes da correção, o que a colocou no catálogo KEV da CISA. O ponto crítico que o CVSS 7.8 não deixa óbvio: não é uma falha pré-autenticação — exige login válido e sessão ativa, o que reduz bastante o universo de atacantes possíveis a contas comprometidas ou insiders.
Detalhamento técnico
A falha está nos plugins de anexo baseados em arquivo (file-based attachment plugins) do Roundcube, habilitados por padrão, combinados com validação insuficiente de entrada (o próprio fornecedor descreve como 'insufficient input validation'). O vetor documentado envolve requisições ao endpoint de configurações de fuso horário: _task=settings&_action=upload-display&_from=timezone. Esse fluxo, pensado para exibir/processar um arquivo enviado (upload de anexo), não restringe adequadamente qual caminho no filesystem pode ser referenciado, permitindo que o parâmetro controlado pelo atacante aponte para arquivos fora do diretório esperado — um padrão típico de path traversal / leitura arbitrária de arquivo (CWE-22 / CWE-200), embora o advisory do fornecedor não cite CWE explicitamente.
O atacante controla o valor do parâmetro que referencia o arquivo a ser exibido pela rotina de upload-display. Como a aplicação processa esse valor sem validar que ele permanece dentro do diretório de anexos temporários do usuário, é possível fazer a aplicação servir o conteúdo de qualquer arquivo legível pelo processo PHP do servidor web — na prática, isso inclui o arquivo de configuração do Roundcube (que contém usuário e senha do banco de dados usado pelo webmail).
A issue #6026 no GitHub, aberta em 6 de novembro de 2017 por um usuário que já observava exploração ativa, confirma o cenário: 'zero-day file disclosure vulnerability ... currently being exploited by hackers to read roundcube's configuration files and steal its database credentials'. O fornecedor corrigiu o problema nas três branches suportadas simultaneamente, tratando como fix único (issue #6026) sem detalhar publicamente o diff exato de validação em texto livre — o código da correção está nos commits das tags de release.
Como é explorada
Pré-requisito obrigatório: o atacante precisa autenticar-se no Roundcube com usuário e senha válidos e manter uma sessão ativa — o vetor de ataque é AV:L/PR:L no CVSS, ou seja, não é exploração anônima pela internet. Isso restringe o universo de exploração a: (a) credenciais de webmail já comprometidas por outros meios (phishing, reuso de senha, brute force), ou (b) usuários internos mal-intencionados. Dado que credenciais de webmail corporativo são um alvo comum de campanhas de phishing, essa barreira de autenticação é mais baixa na prática do que parece no papel.
Com sessão válida, o atacante envia requisições manipuladas ao endpoint _task=settings&_action=upload-display&_from=timezone para fazer a aplicação ler e retornar o conteúdo de arquivos arbitrários no filesystem acessível ao processo PHP. O alvo mais valioso é o arquivo de configuração do próprio Roundcube, que expõe credenciais do banco de dados (MySQL/PostgreSQL) usado pela aplicação — a partir daí o atacante pode acessar diretamente o banco, extrair e-mails, contatos e, dependendo da configuração, escalar para outros sistemas que compartilham credenciais.
A exploração in the wild em novembro de 2017 ocorreu antes da correção oficial (zero-day), motivo pelo qual a CVE está no catálogo KEV da CISA. Existem PoC pública e módulo Metasploit disponíveis, o que baixa a barreira técnica para replicar o ataque uma vez obtidas credenciais válidas.
Versões
Como se proteger
A correção definitiva é atualizar para Roundcube 1.1.10 (branch 1.1.x), 1.2.7 (branch 1.2.x) ou 1.3.3 (branch 1.3.x ou superior). O fornecedor recomenda explicitamente a atualização de todas as instalações produtivas e orienta backup antes de aplicar o update. Distribuições Linux com Roundcube empacotado (ex.: Debian) publicaram backports próprios para suas branches LTS — verificar o anúncio da distribuição usada em vez de assumir que o pacote do repositório já está corrigido.
Se a atualização não for imediatamente viável, o controle compensatório mais direto é desabilitar os plugins de anexo baseados em arquivo (file-based attachment plugins) que ficam habilitados por padrão — isso remove o componente vulnerável ao custo de perder a funcionalidade de anexos nesse fluxo. Restringir ou monitorar o acesso ao endpoint _task=settings&_action=upload-display também reduz a superfície, mas não é uma correção equivalente ao patch, já que não se sabe com certeza se há outras rotas para o mesmo problema de validação.
O que não funciona como mitigação: reforçar apenas a política de senhas ou exigir MFA não elimina o risco, porque qualquer sessão autenticada válida — mesmo obtida legitimamente por um usuário comum — é suficiente para explorar a falha. Da mesma forma, WAF genérico sem regra específica para o padrão de path traversal nesse parâmetro tende a não bloquear a exploração de forma confiável.
Como detectar
Procurar em logs de acesso web por requisições ao endpoint _task=settings&_action=upload-display&_from=timezone, especialmente com parâmetros que contenham sequências de path traversal (ex.: '../') ou referências a caminhos absolutos fora do diretório de anexos temporários. Respostas HTTP anômalas nesse endpoint contendo conteúdo de arquivos de configuração PHP (ex.: presença de strings como 'db_dsnw' ou credenciais de banco) são indício forte de exploração bem-sucedida.
Não há um indicador de rede único e confiável além do padrão de URL acima — como a exploração exige sessão autenticada legítima, o tráfego pode se misturar com uso normal do webmail. Revisar logs de aplicação (não apenas do servidor web) e correlacionar com contas que apresentaram atividade de login incomum antes de novembro de 2017 é recomendado para ambientes que só atualizaram depois dessa data.