CVE-2025-47813

Wing FTP Server Information Disclosure via Error Messages (CVE-2025-47813)

Discovery Reconnaissance Last updated:

Detects potential exploitation of CVE-2025-47813, an information disclosure vulnerability in Wing FTP Server (CWE-209) where detailed error messages expose sensitive server-side information. This vulnerability is actively exploited in the wild (CISA KEV). Attackers may probe the FTP server with malformed or unexpected requests to trigger verbose error responses revealing internal paths, software versions, configuration details, or stack traces.

Vulnerability Intelligence

KEV — Known Exploited

Affected Software

Vendor
Wing FTP Server
Product
Wing FTP Server

Weakness (CWE)

Timeline

Disclosed
March 16, 2026

CVSS

4.3
Medium (4.0–6.9)

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

Write-up coming soon

What is CVE-2025-47813 Wing FTP Server Information Disclosure via Error Messages (CVE-2025-47813)?

Wing FTP Server Information Disclosure via Error Messages (CVE-2025-47813) (CVE-2025-47813) maps to the Discovery and Reconnaissance tactics — the adversary is trying to figure out your environment in MITRE ATT&CK.

This page provides production-ready detection logic for Wing FTP Server Information Disclosure via Error Messages (CVE-2025-47813), covering the data sources and telemetry it touches: W3CIISLog, CommonSecurityLog, Syslog, WindowsEvent. The queries below are rated high severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Discovery Reconnaissance
Microsoft Sentinel / Defender
kusto
union isfuzzy=true
(
    W3CIISLog
    | where csUriStem contains "wftpserver" or csHost contains "wftpserver"
    | where scStatus in (500, 400, 401, 403, 530)
    | where scBytes > 500
    | project TimeGenerated, cIP, csHost, csUriStem, scStatus, scBytes, csUserAgent, csMethod
),
(
    CommonSecurityLog
    | where DeviceVendor contains "Wing" or DeviceProduct contains "WingFTP" or DeviceProduct contains "Wing FTP"
    | where Activity contains "error" or Activity contains "disclosure" or Message contains "stack" or Message contains "exception"
    | project TimeGenerated, SourceIP, DestinationIP, DestinationPort, Activity, Message, DeviceVendor, DeviceProduct
),
(
    Syslog
    | where ProcessName contains "wftpd" or SyslogMessage contains "Wing FTP"
    | where SyslogMessage contains "error" or SyslogMessage contains "exception" or SyslogMessage contains "traceback" or SyslogMessage contains "stack trace"
    | project TimeGenerated, HostName, HostIP, ProcessName, SyslogMessage, SeverityLevel
)
| extend AlertDetails = bag_pack("CVE", "CVE-2025-47813", "Severity", "high", "TacticId", "TA0007")
| order by TimeGenerated desc

Detects Wing FTP Server error responses and log entries indicative of information disclosure exploitation. Looks for high-volume error responses, verbose server messages containing exception details, and anomalous FTP error patterns.

high severity medium confidence

Data Sources

W3CIISLog CommonSecurityLog Syslog WindowsEvent

Required Tables

W3CIISLog CommonSecurityLog Syslog

False Positives

  • Legitimate administrative troubleshooting generating verbose error logs
  • Automated vulnerability scanners performing routine assessments against the FTP server
  • Misconfigured FTP clients causing repeated authentication failures with verbose server responses
  • Internal monitoring tools polling server health endpoints generating error telemetry

Sigma rule & cross-platform mapping

The detection logic for Wing FTP Server Information Disclosure via Error Messages (CVE-2025-47813) (CVE-2025-47813) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Trigger Wing FTP Server Verbose Error via Invalid Command

    Expected signal: Wing FTP Server access logs show connection from test host with invalid command responses. Network capture shows FTP control channel responses with error codes 500/502 and potentially verbose message bodies.

  2. Test 2Enumerate Wing FTP Server Version via Banner Grabbing and Error Probing

    Expected signal: Network logs show sequential FTP connections from test host. Wing FTP Server logs record failed auth attempts and invalid CWD commands with server-generated error responses.

  3. Test 3Simulate Automated Scanner Probing Wing FTP Server Error Responses

    Expected signal: Wing FTP Server logs show burst of varied FTP commands from single source IP including SYST, STAT, FEAT commands that reveal version/feature information, plus error responses to invalid path and command inputs.


Response Playbook

Triage

  1. Confirm the affected host is running Wing FTP Server by checking process list (wftpd.exe, wftpserver.exe) and reviewing the installed version via Windows registry (HKLM\SOFTWARE\Wing FTP Server) or application logs.
  2. Review Wing FTP Server access logs (default: C:\Program Files\Wing FTP Server\log\) for the past 24-72 hours, focusing on error response codes (4xx/5xx) with unusually large response sizes that may indicate verbose error message delivery.
  3. Identify the source IP(s) generating error-triggering requests. Determine if they are known scanners, authorized security testers, or unknown external addresses. Cross-reference with threat intelligence feeds.
  4. Assess what information may have been disclosed: examine error log contents for internal file paths, version strings, configuration values, or stack traces that appeared in server responses.
  5. Check if exploitation was targeted (single source probing specific commands) or opportunistic (scanner-style broad probing across multiple FTP commands).

Containment

  1. Immediately restrict network access to the Wing FTP Server to trusted IP ranges via host-based firewall (Windows Firewall) or network ACL, blocking untrusted external access to FTP ports (21, 989, 990) until the server is patched.
  2. Apply the latest Wing FTP Server patch from the vendor (https://www.wftpserver.com/serverhistory.htm) which addresses the CWE-209 verbose error disclosure. Restart the service after patching and verify error responses no longer contain sensitive details.
  3. If patching is not immediately possible, configure Wing FTP Server to use minimal/generic error messages in its settings panel and disable detailed error logging to clients.

Evidence Collection

  1. Collect Wing FTP Server log files from the default log directory (C:\Program Files\Wing FTP Server\log\) covering the suspected exploitation window, preserving originals with hash verification before analysis.
  2. Capture network traffic logs or NetFlow data for the FTP server's external interface during the incident window to reconstruct what data was transmitted in error responses to external parties.
  3. Export Windows Event Logs (System, Application, Security) from the FTP server host for the relevant timeframe to identify any privilege escalation or lateral movement following information disclosure.

Escalation Criteria

  • ! Escalate immediately if disclosed information includes credentials, internal network topology, or sensitive configuration values that could enable follow-on attacks such as credential stuffing or targeted exploitation.
  • ! Escalate if the source IP of the probing activity is associated with known threat actors, ransomware groups, or is performing coordinated reconnaissance across multiple internal systems beyond the FTP server.

Investigation Guide

Forensic Artifacts

  • > Wing FTP Server application logs: C:\Program Files\Wing FTP Server\log\*.log — contains all client connections, commands, and server responses including error messages
  • > Windows Application Event Log entries from source 'Wing FTP Server' containing error event IDs
  • > Network packet captures showing FTP control channel responses (port 21) with large response payloads indicating verbose error messages
  • > Windows registry key HKLM\SOFTWARE\Wing FTP Server containing version and installation path information

Tuning Guidance

Adjust the error count threshold (default: 5 errors in 5 minutes) based on your environment's baseline FTP error rate. Environments with many automated FTP clients or public-facing FTP servers will require higher thresholds or IP allowlisting of known automated sources. The disclosure keyword matching (path, version, config) may need tuning if your Wing FTP Server uses custom error message templates — review actual error log samples to refine regex patterns. Consider suppressing alerts from known vulnerability scanner IP ranges used by your security team.


Hunting Queries

Proactive hunt for Wing FTP Server hosts with elevated error rates or unusual diversity of source IPs, which may indicate scanning or exploitation attempts targeting CVE-2025-47813.

Hunting — KQL
kql
CommonSecurityLog
| where DeviceProduct contains "Wing" or DeviceProduct contains "FTP"
| where Message contains "error" or Message contains "exception"
| summarize error_count=count(), unique_sources=dcount(SourceIP), sample_messages=make_set(Message, 5) by bin(TimeGenerated, 1h), DestinationIP
| where error_count > 20 or unique_sources > 5
| order by error_count desc
Hunting — SPL
spl
index=* sourcetype=wftpserver OR sourcetype=ftp
| stats count as errors, dc(src_ip) as unique_srcs, values(status) as status_codes by host, span(1h)
| where errors > 20 OR unique_srcs > 5
| sort -errors

Atomic Red Team Tests

Test 1 Trigger Wing FTP Server Verbose Error via Invalid Command
windows

Send malformed or invalid FTP commands to Wing FTP Server to trigger verbose error responses that may disclose internal server information per CVE-2025-47813.

Command

powershell
# Lab environment only — replace TARGET_IP with test Wing FTP Server IP
$ftpHost = "TARGET_IP"
$port = 21
$client = New-Object System.Net.Sockets.TcpClient($ftpHost, $port)
$stream = $client.GetStream()
$reader = New-Object System.IO.StreamReader($stream)
$writer = New-Object System.IO.StreamWriter($stream)
$writer.AutoFlush = $true
# Read banner
$banner = $reader.ReadLine()
Write-Output "Banner: $banner"
# Send invalid command to trigger error
$writer.WriteLine("INVALIDCMD test")
Start-Sleep -Milliseconds 500
$response = $reader.ReadLine()
Write-Output "Error Response: $response"
# Send malformed argument to STAT
$writer.WriteLine("STAT /../../etc/passwd")
Start-Sleep -Milliseconds 500
$response2 = $reader.ReadLine()
Write-Output "STAT Response: $response2"
$client.Close()

Cleanup

powershell
No cleanup required; read-only network probe. Review Wing FTP Server logs to confirm test activity and delete test log entries if needed.

Expected Telemetry

Wing FTP Server access logs show connection from test host with invalid command responses. Network capture shows FTP control channel responses with error codes 500/502 and potentially verbose message bodies.

Expected Detection

Detection fires on error response with verbose content matching path or internal information disclosure patterns within the 5-minute window threshold.

Test 2 Enumerate Wing FTP Server Version via Banner Grabbing and Error Probing
linux

Use automated FTP banner grabbing combined with deliberate error triggers to collect version and path information disclosed in Wing FTP Server error responses.

Command

bash
# Lab environment only — install nmap if not present
# Replace 192.168.1.100 with test Wing FTP Server IP
TARGET="192.168.1.100"

# Step 1: Banner grab
echo 'QUIT' | nc -w3 $TARGET 21 2>&1

# Step 2: Probe with invalid credentials to trigger auth error
(echo 'USER invalidtestuser123'; sleep 1; echo 'PASS wrongpassword'; sleep 1; echo 'QUIT') | nc -w5 $TARGET 21 2>&1

# Step 3: Send path traversal attempt via CWD to trigger error with path info
(echo 'USER anonymous'; sleep 1; echo 'PASS [email protected]'; sleep 1; echo 'CWD /../../../../windows/system32'; sleep 1; echo 'QUIT') | nc -w8 $TARGET 21 2>&1

Cleanup

bash
No cleanup required. Ensure test Wing FTP Server logs are reviewed and test account 'anonymous' is disabled if not needed.

Expected Telemetry

Network logs show sequential FTP connections from test host. Wing FTP Server logs record failed auth attempts and invalid CWD commands with server-generated error responses.

Expected Detection

SPL/KQL query detects multiple error responses from single source IP within 5-minute window with disclosure-pattern keywords in response content.

Test 3 Simulate Automated Scanner Probing Wing FTP Server Error Responses
linux

Simulate an automated vulnerability scanner sending a battery of FTP commands designed to elicit verbose error responses from Wing FTP Server, as attackers use scanners to harvest disclosed information at scale.

Command

bash
# Lab environment only — Python3 required
# Replace TARGET_IP with test Wing FTP Server IP
python3 << 'EOF'
import socket
import time

target = ("TARGET_IP", 21)
commands = [
    b"HELP\r\n",
    b"SYST\r\n",
    b"STAT\r\n",
    b"FEAT\r\n",
    b"USER ../../../../admin\r\n",
    b"PASS ../../../../admin\r\n",
    b"CWD /nonexistent/path/../../\r\n",
    b"RETR /etc/passwd\r\n",
    b"INVALIDCMD\r\n",
    b"QUIT\r\n",
]

s = socket.socket()
s.settimeout(10)
s.connect(target)
print("Banner:", s.recv(1024).decode(errors='replace'))

for cmd in commands:
    s.send(cmd)
    time.sleep(0.3)
    try:
        resp = s.recv(4096).decode(errors='replace')
        print(f"CMD: {cmd.strip()} => {resp[:200]}")
    except Exception as e:
        print(f"Error: {e}")

s.close()
EOF

Cleanup

bash
Review Wing FTP Server logs to confirm test traffic. Remove any test user accounts created during the test. Verify no persistent changes were made to the server.

Expected Telemetry

Wing FTP Server logs show burst of varied FTP commands from single source IP including SYST, STAT, FEAT commands that reveal version/feature information, plus error responses to invalid path and command inputs.

Expected Detection

Both Splunk and Sentinel detections fire: error burst threshold exceeded (>=5 errors in 5min from single IP) with disclosure pattern matches on SYST/STAT responses and path error messages.

Related Detections