← back
CVE-2024-4040criticalunder attackCWE-1336

Unauthenticated arbitrary file read and remote code execution in CrushFTP

100Vexday Risk Score

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

ssvc Actcvss 9.8epss 100%
from disclosure to weapon1 days
Published on NVDApr 22
1st PoC+1d
CISA KEV+2d
exploitation probability
100%top 1% of all CVEs
observed exploitation
yesCISA + VulnCheck
36 public exploit(s)
Action required by CISAfederal deadline: 2024-05-01

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

Summary

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.

Technical detail

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.

How it’s exploited

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.

Versions

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

How to protect

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.

How to detect

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.

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.
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
Affected products
CrushFTP · CrushFTP
public PoCs found36
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/247af1523302unverifiedvulncheckvulncheck.com/xdb/1a53f981a558unverifiedvulncheckvulncheck.com/xdb/b40b6bf3d5a6unverifiedvulncheckvulncheck.com/xdb/40ea0e9b601dunverifiedvulncheckvulncheck.com/xdb/d683df1ebca9unverifiedvulncheckvulncheck.com/xdb/c046e180c9e7unverifiedvulncheckvulncheck.com/xdb/2655831cd2edunverifiedvulncheckvulncheck.com/xdb/c76b89de33efunverifiedvulncheckvulncheck.com/xdb/eeeb1a30c8c2unverifiedvulncheckvulncheck.com/xdb/458c6db39e2eunverifiedvulncheckvulncheck.com/xdb/e71d60507f5dunverifiedvulncheckvulncheck.com/xdb/6e43a515753dunverifiedvulncheckvulncheck.com/xdb/49d5d24a6094unverifiedvulncheckvulncheck.com/xdb/896af97e3f84unverifiedvulncheckvulncheck.com/xdb/046e8f9ffb52unverifiedvulncheckvulncheck.com/xdb/33874f45fc53unverifiedvulncheckvulncheck.com/xdb/df5498fd3264unverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.