CVE-2010-2861
Patch now. It under exploitation confirmed by CISA and has a working public exploit.
Apply updates per vendor instructions.
Summary
Falha de directory traversal (CWE-22) no console administrativo do Adobe ColdFusion, presente em várias páginas de configuração dentro de CFIDE/administrator/, explorável via o parâmetro locale sem qualquer autenticação. O impacto real é maior que uma simples leitura de arquivo: permite recuperar password.properties (hash ou senha em texto claro do admin do CF) e, a partir daí, autenticar no painel administrativo e conseguir execução remota de código, geralmente com privilégios de SYSTEM no Windows. Está no catálogo KEV da CISA por exploração ativa confirmada e tem módulo Metasploit público desde 2010.
Technical detail
A vulnerabilidade é uma traversal de diretório clássica: o parâmetro locale, recebido por mappings.cfm, logging/settings.cfm, datasources/index.cfm, j2eepackaging/editarchive.cfm e enter.cfm (todos dentro de CFIDE/administrator/), é concatenado a um caminho de arquivo sem sanitização adequada de sequências ../. Isso permite ao atacante escapar do diretório esperado e ler qualquer arquivo acessível ao processo do ColdFusion, incluindo arquivos fora do webroot da aplicação.
O ponto crítico não é apenas 'ler um arquivo arbitrário' — é que essas rotas são acessíveis sem login prévio no console administrativo, e o atacante tem controle total sobre o caminho relativo enviado no parâmetro, incluindo o uso de byte nulo (%00) para truncar extensões ou sufixos indesejados adicionados pela aplicação, técnica usada nos PoCs para atingir diretamente password.properties.
O alvo prático de exploração é lib/password.properties, que guarda o hash SHA1 (ColdFusion 8/9, encrypted=true por padrão) ou a senha em texto claro (encrypted=false) do administrador do CF, e neo-security.xml, que pode conter credenciais de datasource. A obtenção desse arquivo é o que transforma uma leitura arbitrária em comprometimento administrativo completo.
Segundo o pesquisador que documentou a falha (gnucitizen, citando observação de Niels Teusink), o mecanismo de login do CF Admin usa HMAC-SHA1 sobre um salt e o próprio hash da senha, calculado no lado do cliente via JavaScript. Isso significa que, uma vez obtido o hash de password.properties, o atacante não precisa quebrá-lo: pode calcular o valor de login diretamente a partir do hash, sem senha em texto claro.
How it’s exploited
O vetor é uma requisição HTTP GET não autenticada para uma das páginas afetadas em CFIDE/administrator/, com o parâmetro locale contendo uma sequência de ../ suficiente para alcançar o arquivo de instalação do ColdFusion (o número de níveis varia conforme a instalação, por isso ferramentas de exploração testam múltiplas profundidades). Não há necessidade de acesso à rede interna nem de configuração não padrão — o único pré-requisito real é que o console administrativo (CFIDE/administrator/) esteja acessível pela rede, algo comum em instalações expostas à internet.
Uma vez obtido o conteúdo de password.properties, o atacante extrai o hash SHA1 e, usando o mecanismo de autenticação do próprio painel (salt + HMAC-SHA1 calculado em JavaScript no formulário de login), constrói um valor de login válido sem precisar quebrar o hash por força bruta. Isso dá acesso completo ao ColdFusion Administrator. A partir daí, o painel oferece funcionalidades legítimas — como o agendador de tarefas (scheduler) — que podem ser abusadas para gravar um arquivo .cfm malicioso no webroot, resultando em execução de código no contexto do serviço CF, tipicamente SYSTEM em Windows por configuração padrão.
O módulo Metasploit público (coldfusion_traversal.rb, autor 'webDEViL') automatiza toda essa cadeia: descoberta do traversal correto, extração do hash, login, upload de shell via scheduler e execução. A presença desse módulo desde 2010, somada à inclusão no catálogo KEV da CISA em 2022 (indicando exploração observada muito depois da divulgação original), mostra que instâncias antigas e não corrigidas continuam sendo alvo ativo, inclusive por scanners automatizados.
Versions
How to protect
A correção do fornecedor está descrita no boletim APSB10-18 da Adobe. Instale o hotfix/patch correspondente à sua versão de ColdFusion (8.0, 8.0.1, 9.0 ou 9.0.1) conforme indicado nesse boletim — não há número de build de correção detalhado nas fontes consultadas aqui, portanto confirme a versão pós-patch diretamente no boletim da Adobe antes de considerar o sistema corrigido.
Se o patch não puder ser aplicado imediatamente, o controle compensatório real é restringir o acesso de rede ao console administrativo e aos diretórios relacionados (CFIDE/adminapi/, CFIDE/administrator/, CFIDE/componentutils/, CFIDE/wizards/, CFIDE/install.cfm) apenas a IPs de confiança, via firewall, ACL no servidor web ou binding de interface. Isso neutraliza o vetor sem exigir alteração de código, mas não corrige a falha subjacente — qualquer exposição futura desses caminhos volta a ser explorável.
Não existe mitigação eficaz apenas trocando a senha do admin ou habilitando encrypted=true em password.properties: como demonstrado, o atacante pode autenticar-se usando o hash diretamente, sem precisar da senha em texto claro nem quebrá-lo. Restringir a exposição de rede do console administrativo é, portanto, mais eficaz do que qualquer ajuste de política de senha enquanto o patch não é aplicado.
How to detect
Em logs de acesso web, procure por requisições a *.cfm dentro de CFIDE/administrator/ (especialmente enter.cfm, settings/mappings.cfm, logging/settings.cfm, datasources/index.cfm, j2eepackaging/editarchive.cfm) contendo o parâmetro locale com múltiplas sequências ../ ou variantes codificadas, e eventual byte nulo (%00) seguido de um código de locale como 'en'. Respostas HTTP 200 nessas requisições, especialmente quando o corpo contém padrões típicos de arquivo de propriedades ou um hash hexadecimal longo, indicam sucesso da exfiltração.
Após a fase de leitura, um login administrativo bem-sucedido sem tentativas anteriores de senha incorreta é um indício de uso do hash extraído para autenticação direta. Criação de novas tarefas agendadas (scheduler) apontando para download de arquivos .cfm incomuns no webroot é o sinal mais forte de exploração completa, já que é o mecanismo usado para obter execução de código.