← back
CVE-2014-6287criticalunder attackCWE-94

CVE-2014-6287

100Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 9.8epss 99%
from disclosure to weapon0 days
Published on NVDOct 7
1st PoCSep 15
metasploitSep 11
CISA KEV+2726d
exploitation probability
99%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
37 public exploit(s)
Action required by CISAfederal deadline: 2022-04-15

Apply updates per vendor instructions.

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

Affected
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.
Fixed in
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).

How to protect

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.

How to detect

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.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
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
Affected products
n/a · n/a
public PoCs found37 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/49125unverifiedgithubgithub.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/819a4221c19eunverifiedvulncheckvulncheck.com/xdb/ca60bce877c0unverifiedvulncheckvulncheck.com/xdb/5a7c8f3319f2unverifiedvulncheckvulncheck.com/xdb/d3f707772d31unverifiedvulncheckvulncheck.com/xdb/7e75a52fb2c4unverifiedvulncheckvulncheck.com/xdb/ac9a55de5631unverifiedvulncheckvulncheck.com/xdb/87218ce82812unverifiedvulncheckvulncheck.com/xdb/95b99733114bunverifiedvulncheckvulncheck.com/xdb/561648cf3450unverifiedvulncheckvulncheck.com/xdb/ab1b8c027b00unverifiedvulncheckvulncheck.com/xdb/9687fe1980c1unverifiedvulncheckvulncheck.com/xdb/00c8dc7170a4unverifiedvulncheckvulncheck.com/xdb/8ec68bc5f629unverifiedvulncheckvulncheck.com/xdb/112c9c9f9dc8unverifiedcve_referencepacketstormsecurity.com/files/128243/HttpFileServer-2.3.x-Remote-Command-Execution.htmlunverifiedcve_referencepacketstormsecurity.com/files/135122/Rejetto-HTTP-File-Server-2.3.x-Remote-Code-Execution.htmlunverifiedcve_referencepacketstormsecurity.com/files/160264/Rejetto-HttpFileServer-2.3.x-Remote-Command-Execution.htmlunverifiedcve_referencepacketstormsecurity.com/files/161503/HFS-HTTP-File-Server-2.3.x-Remote-Code-Execution.htmlunverifiedcve_referencewww.exploit-db.com/exploits/39161/unverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.