← voltar
CVE-2014-6287criticalsob ataqueCWE-94

CVE-2014-6287

100Vexday Risk Score

Corrija agora. Ela está sob exploração confirmada pelo CISA e tem exploit funcional público.

ssvc Actcvss 9.8epss 99%
da publicação à arma0 dias
Publicada no NVD7 de out.
1ª PoC15 de set.
metasploit11 de set.
CISA KEV+2726d
probabilidade de exploração
99%top 1% das CVEs
exploração observada
simCISA + VulnCheck
37 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2022-04-15

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

Afetadas
Rejetto HTTP File Server (HFS) versões 2.3, 2.3a e 2.3b (linha 2.3x anterior a 2.3c), segundo CERT/CC (VU#251276) e a descrição oficial da CVE.
Corrigidas em
HFS 2.3c e versões posteriores corrigem a falha, conforme CERT/CC e a descrição oficial da CVE. Não há menção nas fontes consultadas a backport para outras séries (por exemplo, HFS3).

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.

Pesquisado e redigido com IA a partir do advisory do fornecedor e de análises públicas, com as fontes acima. Confira sempre a versão corrigida no advisory oficial antes de agir.
The findMacroMarker function in parserLib.pas in Rejetto HTTP File Server (aks HFS or HttpFileServer) 2.3x before 2.3c allows remote attackers to execute arbitrary programs via a %00 sequence in a search action.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
n/a · n/a
PoCs públicas encontradas37 VexDay Proof
exploitdbVexDay Proofwww.exploit-db.com/exploits/34668exploitdbVexDay Proofwww.exploit-db.com/exploits/39161exploitdbVexDay Proofwww.exploit-db.com/exploits/34926exploitdbwww.exploit-db.com/exploits/49125não verificadogithubgithub.com/randallbanner/Rejetto-HTTP-File-Server-HFS-2.3.x---Remote-Command-Execution2githubgithub.com/Nicoslo/Windows-exploitation-Rejetto-HTTP-File-Server-HFS-2.3.x-CVE-2014-62871githubgithub.com/mrintern/thm_steelmountain_CVE-2014-62871githubgithub.com/JoaZ94/rejjeto_hfs-rce-exploit-cve-2014-62870githubgithub.com/jagg3rsec/CVE-2014-62870githubgithub.com/R3fr4kt/Optimum0githubgithub.com/rahisec/rejetto-http-file-server-2.3.x-RCE-exploit-CVE-2014-62870githubgithub.com/roughiz/cve-2014-6287.py0githubgithub.com/nika0x38/CVE-2014-62870githubgithub.com/wizardy0ga/THM-Steel_Mountain-CVE-2014-62870githubgithub.com/zhsh9/CVE-2014-62870githubgithub.com/10cks/CVE-2014-62870githubgithub.com/francescobrina/hfs-cve-2014-6287-exploit0githubgithub.com/Z3R0space/CVE-2014-62870vulncheckvulncheck.com/xdb/819a4221c19enão verificadovulncheckvulncheck.com/xdb/ca60bce877c0não verificadovulncheckvulncheck.com/xdb/5a7c8f3319f2não verificadovulncheckvulncheck.com/xdb/d3f707772d31não verificadovulncheckvulncheck.com/xdb/7e75a52fb2c4não verificadovulncheckvulncheck.com/xdb/ac9a55de5631não verificadovulncheckvulncheck.com/xdb/87218ce82812não verificadovulncheckvulncheck.com/xdb/95b99733114bnão verificadovulncheckvulncheck.com/xdb/561648cf3450não verificadovulncheckvulncheck.com/xdb/ab1b8c027b00não verificadovulncheckvulncheck.com/xdb/9687fe1980c1não verificadovulncheckvulncheck.com/xdb/00c8dc7170a4não verificadovulncheckvulncheck.com/xdb/8ec68bc5f629não verificadovulncheckvulncheck.com/xdb/112c9c9f9dc8não verificadocve_referencepacketstormsecurity.com/files/128243/HttpFileServer-2.3.x-Remote-Command-Execution.htmlnão verificadocve_referencepacketstormsecurity.com/files/135122/Rejetto-HTTP-File-Server-2.3.x-Remote-Code-Execution.htmlnão verificadocve_referencepacketstormsecurity.com/files/160264/Rejetto-HttpFileServer-2.3.x-Remote-Command-Execution.htmlnão verificadocve_referencepacketstormsecurity.com/files/161503/HFS-HTTP-File-Server-2.3.x-Remote-Code-Execution.htmlnão verificadocve_referencewww.exploit-db.com/exploits/39161/não verificado
⚠ Recursos públicos, para você avaliar a exposição de sistemas que controla ou está autorizado a testar. Teste apenas com autorização.