← volver
CVE-2014-6287criticalbajo ataqueCWE-94

CVE-2014-6287

100Vexday Risk Score

Corrige ahora. Ella está bajo explotación confirmada por CISA y tiene exploit funcional público.

ssvc Actcvss 9.8epss 99%
de la publicación al arma0 días
Publicada en NVD7 oct
1ª PoC15 sept
metasploit11 sept
CISA KEV+2726d
probabilidad de explotación
99%top 1% de las CVE
explotación observada
CISA + VulnCheck
37 exploit(s) público(s)
Acción exigida por CISAplazo federal: 2022-04-15

Apply updates per vendor instructions.

Resumen

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.

Detalle 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.

Cómo se explota

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.

Versiones

Afectadas
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.
Corregidas en
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).

Cómo protegerse

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.

Cómo 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.

Investigado y redactado con IA a partir del advisory del fabricante y análisis públicos, con las fuentes citadas. Verifica siempre la versión corregida en el advisory oficial antes de actuar.
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
Productos afectados
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/49125no 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/819a4221c19eno verificadovulncheckvulncheck.com/xdb/ca60bce877c0no verificadovulncheckvulncheck.com/xdb/5a7c8f3319f2no verificadovulncheckvulncheck.com/xdb/d3f707772d31no verificadovulncheckvulncheck.com/xdb/7e75a52fb2c4no verificadovulncheckvulncheck.com/xdb/ac9a55de5631no verificadovulncheckvulncheck.com/xdb/87218ce82812no verificadovulncheckvulncheck.com/xdb/95b99733114bno verificadovulncheckvulncheck.com/xdb/561648cf3450no verificadovulncheckvulncheck.com/xdb/ab1b8c027b00no verificadovulncheckvulncheck.com/xdb/9687fe1980c1no verificadovulncheckvulncheck.com/xdb/00c8dc7170a4no verificadovulncheckvulncheck.com/xdb/8ec68bc5f629no verificadovulncheckvulncheck.com/xdb/112c9c9f9dc8no verificadocve_referencepacketstormsecurity.com/files/128243/HttpFileServer-2.3.x-Remote-Command-Execution.htmlno verificadocve_referencepacketstormsecurity.com/files/135122/Rejetto-HTTP-File-Server-2.3.x-Remote-Code-Execution.htmlno verificadocve_referencepacketstormsecurity.com/files/160264/Rejetto-HttpFileServer-2.3.x-Remote-Command-Execution.htmlno verificadocve_referencepacketstormsecurity.com/files/161503/HFS-HTTP-File-Server-2.3.x-Remote-Code-Execution.htmlno verificadocve_referencewww.exploit-db.com/exploits/39161/no verificado
⚠ Recursos públicos, para evaluar la exposición de sistemas que controlas o estás autorizado a probar. Prueba solo con autorización.