← voltar
CVE-2024-4040criticalsob ataqueCWE-1336

Unauthenticated arbitrary file read and remote code execution in CrushFTP

100Vexday Risk Score

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

ssvc Actcvss 9.8epss 100%
da publicação à arma1 dias
Publicada no NVD22 de abr.
1ª PoC+1d
CISA KEV+2d
probabilidade de exploração
100%top 1% das CVEs
exploração observada
simCISA + VulnCheck
36 exploit(s) público(s)
Ação exigida pela CISAprazo federal: 2024-05-01

Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable.

Resumo

Falha de injeção de template server-side (SSTI) na interface web do CrushFTP que permite a um atacante não autenticado escapar da sandbox de VFS, ler arquivos arbitrários do sistema (inclusive como root), contornar autenticação e obter acesso administrativo — e a partir daí RCE completo. O fornecedor descreveu o problema como um simples 'sandbox escape' de leitura de arquivos; análise independente da Rapid7 mostrou que o impacto real é muito maior: comprometimento total do servidor sem qualquer credencial.

Detalhamento técnico

A vulnerabilidade está no mecanismo de templates da interface web do CrushFTP (CWE-1336, neutralização inadequada de elementos usados em template engine). O fornecedor a descreveu como escape da sandbox de VFS (virtual file system), permitindo que requisições HTTP não autenticadas atinjam caminhos fora do diretório virtual do usuário. A Rapid7, ao analisar o código que dispara a falha, concluiu que a causa raiz é injeção de template server-side: o atacante controla entrada que é interpretada como sintaxe de template pelo motor interno do CrushFTP, permitindo não só leitura de arquivo fora da sandbox como execução de lógica arbitrária dentro do contexto do servidor.

O efeito em cascata é o que torna a CVE crítica: leitura arbitrária de arquivos do sistema (incluindo os que guardam credenciais de administrador) abre caminho para bypass de autenticação, e daí para acesso administrativo completo via WebInterface. Com acesso de administrador no CrushFTP é possível alterar configurações, adicionar usuários, e alcançar execução remota de código no host — não há necessidade de exploit separado para RCE, é a consequência direta da cadeia de SSTI + escalonamento administrativo.

O Airbus CERT (Simon Garrelou), que reportou a falha, publicou um scanner que reproduz a leitura de arquivo fora da sandbox como prova de exploração, confirmando que nenhuma autenticação prévia é necessária para o passo inicial da cadeia.

Como é explorada

O vetor é a interface web (WebInterface) exposta do CrushFTP, acessível pela rede sem qualquer credencial. O atacante envia requisições HTTP manipuladas que acionam a interpretação de template no lado do servidor; não há pré-condição de autenticação, configuração não padrão ou interação de usuário — é exatamente o que o vetor CVSS AV:N/AC:L/PR:N/UI:N indica. A Rapid7 classificou a exploração como trivial após reversão do patch.

Houve exploração ativa como zero-day antes da divulgação pública: a CrowdStrike (Falcon OverWatch/Falcon Intelligence) observou ataques direcionados contra múltiplas organizações nos EUA, com indícios de campanha de coleta de inteligência, provavelmente com motivação política — não exploração massiva e oportunista, mas ataques dirigidos a alvos específicos. Depois que o fornecedor divulgou o problema (19/04/2024) e código de prova de conceito ficou público (23/04/2024), a exploração se tornou trivialmente reproduzível por qualquer atacante, o que motivou a inclusão no catálogo KEV da CISA já em 24/04 com prazo de correção de 01/05/2024.

A Rapid7 identificou que o payload pode ser entregue de várias formas e, com técnicas evasivas, fica irreconhecível em logs — inclusive atrás de proxy reverso padrão (NGINX/Apache), que oferece defesa apenas parcial. Isso torna difícil distinguir tráfego malicioso de legítimo só pela inspeção de requisição.

Versões

Afetadas
Todas as instalações legadas da série CrushFTP 9.x; CrushFTP 10 em versões anteriores à 10.7.1; CrushFTP 11 em versões anteriores à 11.1.0. Afeta todas as plataformas.
Corrigidas em
CrushFTP 10.7.1 (ramo 10.x) e CrushFTP 11.1.0 (ramo 11.x). Instalações da série 9.x não recebem patch — é necessário migrar para a série 11.

Como se proteger

A correção definitiva é atualizar para CrushFTP 10.7.1 (ramo 10.x) ou 11.1.0 (ramo 11.x); instalações legadas da série 9.x são vulneráveis e devem migrar para a série 11. A Rapid7 validou que o patch do fornecedor remedia efetivamente a falha e recomenda aplicação em caráter de emergência, fora do ciclo normal de patch.

O fornecedor afirmou que clientes usando uma DMZ na frente da instância principal do CrushFTP estariam 'parcialmente protegidos'. A Rapid7 contesta essa afirmação como barreira efetiva e recomenda não confiar em DMZ como mitigação — trate essa alegação do fornecedor com ceticismo até validação independente. Como controle compensatório real, habilitar o 'Limited Server mode' com a configuração mais restritiva disponível reduz a superfície para RCE administrativo, e restringir por firewall quais IPs podem acessar a interface web do CrushFTP limita a exposição — mas nenhuma dessas medidas substitui o patch, pois o vetor de leitura de arquivo/SSTI inicial ainda pode ser alcançável dependendo da configuração.

Proxy reverso (NGINX/Apache) na frente do CrushFTP oferece defesa apenas parcial: técnicas evasivas de payload continuam funcionando através dele, portanto não deve ser tratado como mitigação suficiente isoladamente.

Como detectar

O Airbus CERT publicou um script (scan_logs.py) que busca nos logs de instalação do CrushFTP a string '' como indicador de comprometimento, equivalente a um grep recursivo no diretório de logs; quando há correspondência, o script tenta extrair o IP de origem da tentativa de exploração. Esse é o sinal mais concreto disponível publicamente.

A própria Rapid7 alerta que a detecção é difícil: o payload pode ser entregue em várias formas, e técnicas evasivas fazem com que o conteúdo malicioso seja redigido/ocultado nos próprios logs e na história de requisições, tornando-o indistinguível de tráfego legítimo — mesmo atrás de proxy reverso padrão. Ou seja, ausência de indicadores nos logs não garante que o servidor não foi explorado; monitorar acesso à interface web exposta publicamente e cruzar com IOCs de campanhas relatadas (CrowdStrike) é a abordagem mais confiável disponível.

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.
A server side template injection vulnerability in CrushFTP in all versions before 10.7.1 and 11.1.0 on all platforms allows unauthenticated remote attackers to read files from the filesystem outside of the VFS Sandbox, bypass authentication to gain administrative access, and perform remote code execution on the server.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Produtos afetados
CrushFTP · CrushFTP
PoCs públicas encontradas36
githubgithub.com/Stuub/CVE-2024-4040-SSTI-LFI-PoC63cve_referencegithub.com/airbus-cert/CVE-2024-404052githubgithub.com/rbih-boulanouar/CVE-2024-404014githubgithub.com/geniuszly/GenCrushSSTIExploit8githubgithub.com/gotr00t0day/CVE-2024-40407githubgithub.com/dhammerg/CVE-2024-40405githubgithub.com/jakabakos/CVE-2024-4040-CrushFTP-File-Read-vulnerability4githubgithub.com/entroychang/CVE-2024-40403githubgithub.com/rahisec/CVE-2024-40400githubgithub.com/ill-deed/CrushFTP-CVE-2024-4040-illdeed0githubgithub.com/Sidjaz/CrushFTP-CVE-2024-4040-Proof-of-Concept0githubgithub.com/juanorts/CrushFTP10-Docker-CVE-2024-40400githubgithub.com/cthhhhhh/CrushFTP-SSTI-LFI-Proof-of-Concept0githubgithub.com/Mufti22/CVE-2024-40400githubgithub.com/0xN7y/CVE-2024-40400githubgithub.com/Praison001/CVE-2024-4040-CrushFTP-server0githubgithub.com/1ncendium/CVE-2024-40400githubgithub.com/olebris/CVE-2024-40400githubgithub.com/safeer-accuknox/CrushFTP-cve-2024-4040-poc0vulncheckvulncheck.com/xdb/247af1523302não verificadovulncheckvulncheck.com/xdb/1a53f981a558não verificadovulncheckvulncheck.com/xdb/b40b6bf3d5a6não verificadovulncheckvulncheck.com/xdb/40ea0e9b601dnão verificadovulncheckvulncheck.com/xdb/d683df1ebca9não verificadovulncheckvulncheck.com/xdb/c046e180c9e7não verificadovulncheckvulncheck.com/xdb/2655831cd2ednão verificadovulncheckvulncheck.com/xdb/c76b89de33efnão verificadovulncheckvulncheck.com/xdb/eeeb1a30c8c2não verificadovulncheckvulncheck.com/xdb/458c6db39e2enão verificadovulncheckvulncheck.com/xdb/e71d60507f5dnão verificadovulncheckvulncheck.com/xdb/6e43a515753dnão verificadovulncheckvulncheck.com/xdb/49d5d24a6094não verificadovulncheckvulncheck.com/xdb/896af97e3f84não verificadovulncheckvulncheck.com/xdb/046e8f9ffb52não verificadovulncheckvulncheck.com/xdb/33874f45fc53não verificadovulncheckvulncheck.com/xdb/df5498fd3264nã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.