CVERadar
CRITICAL · CVSS 3.1 9.8CISA KEV · added 2025-04-07Exploit-DBPublic PoCKnown ransomware useEPSS 99.97% (p100)Threat level 99

CVE-2025-31161: CrushFTP Authentication Bypass Vulnerability

CrushFTP · CrushFTP · NVD published 2025-04-04 · posted 2026-10-21 · last modified 2026-06-17

What it is

CrushFTP 10 before 10.8.4 and 11 before 11.3.1 allows authentication bypass and takeover of the crushadmin account (unless a DMZ proxy instance is used), as exploited in the wild in March and April 2025, aka "Unauthenticated HTTP(S) port access." A race condition exists in the AWS4-HMAC (compatible with S3) authorization method of the HTTP component of the FTP server. The server first verifies the existence of the user by performing a call to login_user_pass() with no password requirement. This will authenticate the session through the HMAC verification process and up until the server checks for user verification once more. The vulnerability can be further stabilized, eliminating the need for successfully triggering a race condition, by sending a mangled AWS4-HMAC header. By providing only the username and a following slash (/), the server will successfully find a username, which triggers the successful anypass authentication process, but the server will fail to find the expected SignedHeaders entry, resulting in an index-out-of-bounds error that stops the code from reaching the session cleanup. Together, these issues make it trivial to authenticate as any known or guessable user (e.g., crushadmin), and can lead to a full compromise of the system by obtaining an administrative account.

WeaknessCWE-305
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (source: [email protected])
CISA due date2025-04-28 (for US federal agencies under BOD; a good deadline for everyone)
ATT&CK tacticsInitial Access → Persistence → Privilege Escalation → Stealth → Execution

Exploitation evidence

First exploit evidence seen: 2025-04-07 (earliest date across the sources below).

Exploited in the wild

  • CISA KEV: listed since 2025-04-07. Source

Public exploit code

Exploit-DB

  • EDB-52295: CrushFTP 11.3.1 - Authentication Bypass (2025-05-18)

GitHub proof-of-concept repositories

19 public repositories from 16 accounts, first seen 2025-04-08. Most starred: Immersive-Labs-Sec/CVE-2025-31161 (48 stars), view repository.

Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.

Sources: CISA KEV · Exploit-DB (OffSec) · nomi-sec/PoC-in-GitHub.

Defend the Chain

The attack chain for CVE-2025-31161 laid across the MITRE ATT&CK Enterprise tactics. Solid cards come from the MITRE CTID KEV mappings; dashed cards are inferred by CVERadar from the CWE or description. Correct defences are real ATT&CK mitigations for that technique.

Threat level 99/100
Defender level 1 · 0 XP
Chain links broken: 0/3

Pick a red technique card on the board, then choose the defence that stops it.

Defend against T1078 Valid Accounts CTID: exploitation technique

This vulnerability in CrushFTP has been exploited to give attackers control how the software handles authentication, allowing access to the administrative account. From there, attackers have the ability to read and upload files, execute arbitrary code, create backdoors in the form of new administrative accounts, and conduct a full system takeover.

How to fix it

CISA required action

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable. (source: CISA KEV)

Fixed versions

  • crushftp crushftp: upgrade to 10.8.4 or later (affected from 10.0.0)
  • crushftp crushftp: upgrade to 11.3.1 or later (affected from 11.0.0)

Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.

Vendor advisories and patches

MITRE ATT&CK mitigations for this chain

  • M1027 Password Policies (for T1078) : Applications and appliances that utilize default username and password should be changed immediately after the installation, and before deployment to a production environment. When possible, applications that use SSH keys should be updated periodically and properly secured. Policies should minimize (if not eliminate)
  • M1018 User Account Management (for T1078) : Regularly audit user accounts for activity and deactivate or remove any that are no longer needed.
  • M1026 Privileged Account Management (for T1078, T1059, T1136) : Audit domain and local accounts as well as their permission levels routinely to look for situations that could allow an adversary to gain wide access by obtaining credentials of a privileged account. These audits should also include if default accounts have been enabled, or if new local accounts are created that have
  • M1032 Multi-factor Authentication (for T1078, T1136) : Implement multi-factor authentication (MFA) across all account types, including default, local, domain, and cloud accounts, to prevent unauthorized access, even if credentials are compromised. MFA provides a critical layer of security by requiring multiple forms of verification beyond just a password. This measure sign
  • M1013 Application Developer Guidance (for T1078) : Ensure that applications do not store sensitive data or credentials insecurely. (e.g. plaintext credentials in code, published credentials in repositories, or credentials in public cloud storage).
  • M1017 User Training (for T1078) : Applications may send push notifications to verify a login as a form of multi-factor authentication (MFA). Train users to only accept valid push notifications and to report suspicious push notifications.
  • M1015 Active Directory Configuration (for T1078) : Disable legacy authentication, which does not support MFA, and require the use of modern authentication protocols instead.
  • M1036 Account Use Policies (for T1078) : Use conditional access policies to block logins from non-compliant devices or from outside defined organization IP ranges.
  • M1033 Limit Software Installation (for T1059) : Prevent user installation of unrequired command and scripting interpreters.
  • M1045 Code Signing (for T1059) : Where possible, only permit execution of signed scripts.

Detection Generic guidance

  • Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
  • Persistence: Look for new files in web roots, new scheduled tasks/services, and new accounts created after the exposure window.
  • Privilege Escalation: Alert on processes gaining SYSTEM/root unexpectedly, and on exploitation crashes of privileged services.
  • Execution: Watch for the service process spawning shells or script interpreters (cmd.exe, powershell, sh, bash, python) via EDR process-tree rules.

Response checklist Generic guidance

  1. Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
  2. Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
  3. Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
  4. Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.

Sources