CVE-2014-6287
Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.
Apply updates per vendor instructions.
Resumo
Falha crítica de execução remota de comando não autenticada no Rejetto HTTP File Server (HFS), presente nas versões 2.3, 2.3a e 2.3b. Um atacante sem credenciais envia uma requisição HTTP de busca contendo um byte nulo seguido de sintaxe de macro interna do HFS, e o servidor executa o comando informado com os privilégios do processo do HFS — tipicamente uma conta com privilégios administrativos, já que HFS costuma correr como serviço no Windows. É explorada ativamente desde pelo menos 2014 e está no catálogo KEV da CISA.
Detalhamento técnico
A vulnerabilidade está na função findMacroMarker, em parserLib.pas, parte do motor de templates/macros interno do HFS que processa parâmetros de busca (search). O HFS usa uma sintaxe própria de macro no formato {.comando|argumento.} para funcionalidades internas do servidor. A expressão regular que localiza o fim de uma macro (o 'marker') não trata corretamente a presença de um byte nulo (%00) dentro da string de busca — CERT/CC classificou isso como CWE-158 (Improper Neutralization of Null Byte or NUL Character); o catálogo KEV da CISA lista como CWE-94 (Code Injection), refletindo o impacto final mais do que a causa raiz.
O atacante controla o conteúdo da query string do parâmetro search. Ao inserir %00 seguido de uma sintaxe de macro válida — por exemplo {.exec|comando.} — o parser interpreta o trecho após o null byte como uma macro executável do próprio HFS, e não como texto de busca literal. Isso permite invocar diretamente a macro exec, que dispara execução de comandos do sistema operacional subjacente (cmd.exe no Windows, plataforma majoritária do HFS).
Não há necessidade de autenticação, upload prévio de arquivo, nem interação do usuário. Basta acesso de rede à porta HTTP do serviço HFS vulnerável, o que torna a superfície de ataque idêntica à de qualquer requisição GET comum.
Como é explorada
O vetor é uma única requisição HTTP GET ao endpoint de busca do HFS, com o parâmetro search contendo o byte nulo e a macro desejada — o próprio CERT/CC documenta como exemplo mínimo abrir a calculadora do Windows via ?search==%00{.exec|calc.}. Na prática, exploits públicos (incluindo o módulo do Metasploit e o PoC em Python do Exploit-DB) encadeiam múltiplas macros: uma para salvar um script (VBScript) em disco via macro save, outra para executá-lo via cscript através da macro exec, baixando um binário (por exemplo netcat) de um servidor controlado pelo atacante e abrindo um shell reverso.
Pré-requisitos reais: apenas acesso de rede à instância HFS na porta configurada (por padrão HTTP), sem autenticação. Não depende de configuração não padrão do HFS — a busca é uma funcionalidade padrão e habilitada por default nas versões afetadas. A complexidade de exploração é baixa: a vulnerabilidade tem CVSS 3.1 de 9.8 e EPSS acima de 0.99, refletindo exploração trivial e generalizada.
O resultado final é execução arbitrária de código no host que roda o HFS, com os privilégios da conta do serviço — em muitos deployments observados em campanhas de varredura em massa e ransomware, isso equivale a controle total da máquina. A presença no catálogo KEV da CISA confirma exploração ativa in-the-wild, e a disponibilidade de módulo Metasploit e templates Nuclei tornou a detecção e a exploração automatizadas triviais para qualquer atacante com acesso à internet ao serviço exposto.
Versões
Como se proteger
A correção do fornecedor é atualizar para HFS 2.3c ou versão posterior, disponível no site do projeto (rejetto.com/hfs) e no repositório SourceForge do projeto. Não há indicação nas fontes consultadas de patch para versões 2.3, 2.3a ou 2.3b fora da atualização completa para 2.3c.
Se a atualização não for possível de imediato, o controle compensatório mais direto é impedir requisições HTTP contendo %00 (ou seu equivalente decodificado, byte nulo) no parâmetro search antes que cheguem ao HFS — via proxy reverso ou filtro de entrada que rejeite bytes nulos na query string — e, idealmente, restringir o acesso de rede ao serviço apenas a origens confiáveis, já que o HFS não deveria estar exposto diretamente à internet sem controle de acesso. Desativar ou remover a funcionalidade de busca, se o software permitir, reduz a superfície, mas não é uma mitigação documentada oficialmente pelo fornecedor nas fontes consultadas.
O que não funciona: rodar o serviço com privilégios reduzidos ajuda a limitar o impacto pós-exploração, mas não impede a execução de comando em si — a falha ocorre no parser da aplicação, independente do nível de privilégio do processo. Manter o HFS atrás de firewall sem outro controle também não é suficiente se a porta estiver acessível a qualquer origem interna ou parcialmente exposta.
Como detectar
Em logs de acesso HTTP do servidor (ou de proxy/WAF na frente dele), procurar requisições ao endpoint de busca contendo %00 no parâmetro search, seguido de sintaxe de macro do HFS como {.exec|...}, {.save|...} ou variantes com comandos concatenados — esse padrão é praticamente exclusivo de tentativas de exploração desta CVE, já que não corresponde a uso legítimo da busca. Tentativas automatizadas via Metasploit ou scripts baseados no PoC público tendem a gerar múltiplas requisições sequenciais em curto intervalo (criação de script, execução via cscript, download de binário auxiliar como netcat), o que é um padrão adicional de correlação útil em SOC.
Não há um indicador de comprometimento pós-exploração padronizado nas fontes consultadas além dos artefatos genéricos de execução de comando no Windows (processos filhos inesperados de cscript.exe ou do processo do HFS, criação de arquivos como script.vbs ou nc.exe em diretórios de usuário) — a ausência de log de aplicação detalhado no HFS limita a detecção a nível de rede/host quando o log HTTP não é retido.