A bank vault with a broken lock and the combination written on the wall
Progress WS_FTP Server versions before 2024.0.6 and 2025.0.3 on Windows contain an improper authentication flaw in the web management or transfer interface. An unauthenticated remote attacker who can reach the service can request an endpoint that returns sensitive configuration data, including administrator credentials. No user interaction is required.
The vendor's CVSS 10 is not alarmist for the typical WS_FTP Server deployment. These systems usually sit in a DMZ specifically to exchange files with external parties, so they are internet-reachable by design. Stolen administrator credentials give an attacker full control of the server's file transfer jobs, stored files, and any linked backend shares or service accounts, making pre-auth credential disclosure a CRITICAL event.
Monday-morning action: treat this as CRITICAL; block external access to the WS_FTP web/admin listener immediately, apply the vendor patch within the *noisgate mitigation SLA* of 3 days, and complete fleet-wide patch and credential rotation within the *noisgate remediation SLA* of 90 days.
5 steps from start to impact.
Find an internet-reachable WS_FTP Server
- Network path to an exposed WS_FTP web/transfer listener
- No IP allowlists blocking the attacker's source
- Some deployments restrict WS_FTP to internal networks or VPN concentrators
- Custom ports or non-default virtual host paths can reduce casual scanning
Reach the vulnerable unauthenticated endpoint
- Unauthenticated network access to the affected web/admin listener
- Affected version before 2024.0.6/2025.0.3
- Admin or configuration endpoints may be disabled in hardened builds
- Reverse proxy/WAF may block unusual paths, but a legitimate endpoint is often allowed
Retrieve administrator credentials from the response
- Credentials stored in a configuration file or response-accessible field
- No additional encryption beyond transport
- Very little friction; this is the intended vulnerable behavior
Authenticate as administrator and take full control
- Admin interface reachable from attacker position
- No separate MFA or post-auth IP restriction on admin login
- Some deployments enforce MFA on interactive admin logins, but service/config endpoints may bypass it
- If the admin interface is internal-only, the attacker needs to pivot through the DMZ first
Pivot to connected storage and service accounts
- Configuration contains linked storage/service credentials
- Network egress from WS_FTP host to backend systems permitted
- Modern credential hygiene and least-privilege service accounts reduce blast radius
- Network segmentation between DMZ and internal storage can slow lateral movement
- WAF signature blocking: The request may look like a normal unauthenticated GET to a legitimate path; WAFs will not reliably distinguish it from legitimate traffic.
- Enabling MFA on WS_FTP admin accounts: If the vulnerability returns stored credentials and allows the attacker to authenticate through the same bypassed path, interactive MFA is not involved and can be bypassed.
- File integrity monitoring / AV: This is a network-level credential disclosure, not a code execution event on the host; endpoint controls will not see the initial theft.
The supporting signals.
| In-the-wild status | Not observed in the wild at disclosure; not listed in CISA KEV as of 2026-10-30. |
|---|---|
| Proof-of-concept availability | No public PoC identified on GitHub, ExploitDB, or PoCIndex in the immediate disclosure window; the simple auth bypass will be trivially reproducible once the patch diff is examined. |
| EPSS score / percentile | EPSS not yet scored for this CVE at assessment time; expect low initial EPSS to rise within days given the pre-auth credential disclosure. |
| KEV status | Not in CISA KEV; check again after the first exploitation reports. |
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H — network attack, low complexity, no privileges, no user interaction, high confidentiality/integrity/availability impact with scope change. |
| Affected versions | WS_FTP Server prior to 2024.0.6 on the 2024 line and prior to 2025.0.3 on the 2025 line on Windows. |
| Fixed versions | 2024.0.6 and 2025.0.3; consult Progress for backport or distro-specific builds. |
| Exposure / scanning | Shodan and Censys historically show thousands of internet-exposed WS_FTP Server instances; exact post-disclosure counts not yet published. |
| Disclosure date | 2026-10-29 |
| Reporting researcher/org | Undisclosed; Progress Software credited the find internally or via a coordinated disclosure not yet named. |
Sources.
Why this verdict
- Pre-auth credential disclosure: The flaw returns administrator credentials to an unauthenticated attacker; that alone is CRITICAL.
- Minimal real-world friction: WS_FTP Server is an MFT appliance commonly internet-facing by design, so the attacker position is already satisfied for a material share of installs.
- Role multiplier: Internet-facing file-transfer gateways are high-value: admin control over MFT can expose regulated files, linked storage credentials, and domain service accounts.
- Vendor baseline justified but slightly tempered: CVSS 10 assumes every instance is exposed and no compensating network segmentation; we trim to 9.5 for internal-only deployments and no observed exploitation.
Why not higher?
Score cannot exceed 10. The only reasons not to stay at 10 are that a meaningful minority of WS_FTP deployments restrict the vulnerable listener to internal networks or VPNs, and there is no confirmed in-the-wild exploitation or KEV listing yet. Those are configuration and temporal factors, not a fix for the flaw.
Why not lower?
This is a textbook unauthenticated credential disclosure on a DMZ system. Administrative credentials turn a single vulnerable web endpoint into full control of the MFT workload and often a pivot into linked storage or Active Directory. Any lower severity would understate the Monday-morning risk to enterprises that expose WS_FTP to partners.
Crowdsourced verification payload.
Run on the WS_FTP Server host as an administrator. Open an elevated PowerShell prompt and run powershell -ExecutionPolicy Bypass -File .\check_cve-2026-84295.ps1. No arguments needed; exit 0 means PATCHED, 1 means VULNERABLE, 2 means UNKNOWN.
# check_cve-2026-84295.ps1
$ErrorActionPreference = 'SilentlyContinue'
function Test-WsftpAffected([string]$versionString) {
$v = $versionString.Trim()
if ($v -match '^[vV]?(\d+)\.(\d+)\.(\d+)') {
$major = [int]$matches[1]
$minor = [int]$matches[2]
$patch = [int]$matches[3]
$num = $major * 10000 + $minor * 100 + $patch
$fixed2024 = 2024 * 10000 + 0 * 100 + 6
$fixed2025 = 2025 * 10000 + 0 * 100 + 3
if ($major -lt 2024) { return $true }
if ($major -eq 2024 -and $num -lt $fixed2024) { return $true }
if ($major -eq 2025 -and $num -lt $fixed2025) { return $true }
return $false
}
return $null
}
$rootPaths = @(
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
)
$found = $false
Get-ItemProperty $rootPaths |
Where-Object { $_.DisplayName -match 'WS_FTP\s+Server' } |
ForEach-Object {
$found = $true
$display = $_.DisplayName
$version = $_.DisplayVersion
if (-not $version) {
Write-Output "UNKNOWN: $display installed but DisplayVersion is empty"
exit 2
}
$affected = Test-WsftpAffected $version
if ($affected -eq $null) {
Write-Output "UNKNOWN: cannot parse version '$version' for $display"
exit 2
}
if ($affected) {
Write-Output "VULNERABLE: $display version $version is affected by CVE-2026-84295"
exit 1
}
else {
Write-Output "PATCHED: $display version $version is not affected"
exit 0
}
}
if (-not $found) {
Write-Output "UNKNOWN: WS_FTP Server not found in registry uninstall keys"
exit 2
}