CVE-2025-59287 — Microsoft WSUS Remote Code Execution¶
Key facts
CVE-2025-59287 is a Critical (9.8) vulnerability: Microsoft WSUS Remote Code Execution. This entry ships ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) plus a detection-only PoC and a Docker test lab. It is on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2025-10-24), confirming active exploitation in the wild.
Actively exploited — on the CISA KEV catalog
CVE-2025-59287 is listed on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2025-10-24), confirming exploitation in the wild. Federal remediation deadline: 2025-11-14. Prioritise patching and deploy the detection and prevention rules below.
| CVE | CVE-2025-59287 |
| Severity | Critical (9.8) |
| CISA KEV | Actively exploited (added 2025-10-24) |
| Detection / prevention | Snort, YARA, Nginx, Apache |
| PoC | poc.py |
| Source | 2025/CVE-2025-59287/ |
Details¶
CVE-2025-59287 is a Critical (9.8) vulnerability: Microsoft WSUS Remote Code Execution. This entry ships a detection-only proof-of-concept (PoC), a Docker test lab, and ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) — see Detection and prevention below. Source: NVD record.
Overview¶
| Attribute | Value |
|---|---|
| CVE ID | CVE-2025-59287 |
| Severity | Critical |
| CVSS Score | 9.8 |
| Affected Product | Windows Server Update Services (WSUS) |
| Vulnerability Type | Unauthenticated RCE |
| Exploitation Status | Actively Exploited |
Description¶
CVE-2025-59287 is a critical unauthenticated remote code execution vulnerability in Microsoft's Windows Server Update Services (WSUS). The vulnerability allows remote attackers to execute arbitrary code on WSUS servers without authentication.
Affected Versions¶
- Windows Server 2016
- Windows Server 2019
- Windows Server 2022
Technical Details¶
Root Cause¶
The vulnerability exists in how WSUS processes certain specially crafted HTTP requests. An attacker can send malicious requests that bypass authentication and trigger code execution in the context of the WSUS service.
Attack Vector¶
- Attacker identifies WSUS server (typically on port 8530/8531)
- Sends specially crafted HTTP request
- Server processes request without proper authentication
- Arbitrary code executes with SYSTEM privileges
Impact¶
- Complete compromise of WSUS infrastructure
- Potential for supply chain attacks via malicious updates
- Lateral movement across enterprise networks
- Access to all managed Windows endpoints
Mitigation¶
- Apply Microsoft emergency out-of-band patch (October 23, 2025)
- Restrict network access to WSUS ports
- Monitor for suspicious WSUS traffic
- Implement network segmentation
Verification Process¶
The PoC uses a multi-stage verification approach:
Step 1: Product/Version Detection (Passive)¶
[*] Query target endpoint
[*] Detect product signatures and extract version
[*] Check if version is in vulnerable range
Step 2: Active Vulnerability Testing¶
| Method | Description | Detection |
|---|---|---|
| Error-based | Tests for error messages indicating vulnerability | Error indicators in response |
| Timing-based | Measures response delay with payload | Response time significantly longer |
| Response-based | Checks for expected patterns in response | Vulnerability indicators present |
Verification Flow¶
┌─────────────────────────────────────────────────────────────┐
│ Product Detection │
│ Query target → Detect product/version │
│ Check if version in vulnerable range │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Active Vulnerability Testing │
│ │
│ 1. Error-based Test │
│ └─ Send payload → Check for error indicators │
│ └─ If error found → CONFIRMED VULNERABLE │
│ │
│ 2. Timing-based Test │
│ └─ Send delay payload → Measure response time │
│ └─ If delayed → CONFIRMED VULNERABLE │
│ │
│ 3. Response-based Test │
│ └─ Send payload → Check response content │
│ └─ If pattern matches → CONFIRMED VULNERABLE │
└─────────────────────────────────────────────────────────────┘
Usage¶
# Full vulnerability check (version + active testing)
python3 poc.py -t https://target.com -c
# Version-only check (passive, no payloads sent)
python3 poc.py -t https://target.com -c --version-only
References¶
Detection and prevention¶
Ready-to-deploy defensive rules for CVE-2025-59287, for authorized testing and blue-team detection engineering:
- Snort IDS signature —
prevention/snort.rules - YARA detection rule —
prevention/yara.yar - Nginx mitigation —
prevention/nginx.conf - Apache HTTPD mitigation —
prevention/httpd.conf - Detection-only PoC —
poc.py - Rule notes —
prevention/README.md
References: NVD — CVE-2025-59287 · full write-up on the searchable site
Detection & prevention rules¶
# CVE-2025-59287 - Snort IDS Rules
# Severity: High
# Detect potential exploit attempts
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (
msg:"CVE-2025-59287 Potential Exploit Attempt";
flow:to_server,established;
content:".."; http_uri;
classtype:web-application-attack;
sid:2025592871;
rev:1;
metadata:cve CVE-2025-59287, severity high;
)
# Detect suspicious patterns in request
alert tcp $EXTERNAL_NET any -> $HOME_NET $HTTP_PORTS (
msg:"CVE-2025-59287 Suspicious Request Pattern";
flow:to_server,established;
pcre:"/(%2e%2e|%252e|\x00)/Ui";
classtype:web-application-attack;
sid:2025592872;
rev:1;
metadata:cve CVE-2025-59287, severity high;
)
/*
* CVE-2025-59287 - YARA Detection Rules
*/
rule CVE_2025_59287_Exploit {
meta:
description = "Detects potential CVE-2025-59287 exploit attempts"
author = "Security Research Team"
severity = "high"
cve = "CVE-2025-59287"
strings:
$path_traversal1 = "../" ascii wide
$path_traversal2 = "..\" ascii wide
$encoded1 = "%2e%2e" ascii wide nocase
$encoded2 = "%252e" ascii wide nocase
$null_byte = "%00" ascii wide
condition:
any of them
}
# CVE-2025-59287 - Prevention Rules for Nginx
# Block common exploit patterns
location / {
# Rate limiting
limit_req zone=general burst=20 nodelay;
# Block suspicious patterns
if ($request_uri ~* "(\.\.[\/]|%2e%2e|%252e)") {
return 403;
}
# Security headers
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "DENY" always;
add_header X-XSS-Protection "1; mode=block" always;
}
# Log suspicious activity
access_log /var/log/nginx/CVE-2025-59287-access.log;
error_log /var/log/nginx/CVE-2025-59287-error.log;
# CVE-2025-59287 - Prevention Rules for Apache httpd
# Block common exploit patterns
<IfModule mod_rewrite.c>
RewriteEngine On
# Block path traversal
RewriteCond %{REQUEST_URI} (\.\.[\/]|%2e%2e|%252e) [NC]
RewriteRule .* - [F,L]
# Block null bytes
RewriteCond %{REQUEST_URI} %00 [NC]
RewriteRule .* - [F,L]
</IfModule>
# Security headers
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "DENY"
Header always set X-XSS-Protection "1; mode=block"
# Enable logging
CustomLog /var/log/httpd/CVE-2025-59287-access.log combined
ErrorLog /var/log/httpd/CVE-2025-59287-error.log
Frequently asked questions¶
What is CVE-2025-59287?¶
CVE-2025-59287 is a Critical (9.8) vulnerability: Microsoft WSUS Remote Code Execution. This entry ships ready-to-deploy detection and prevention rules (Snort, YARA, Nginx, Apache) plus a detection-only PoC and a Docker test lab. It is on the CISA Known Exploited Vulnerabilities (KEV) catalog (added 2025-10-24), confirming active exploitation in the wild.
How do I detect CVE-2025-59287?¶
Deploy the Snort and YARA detection rule included with this entry (see Detection & prevention rules below), then validate it against the detection-only PoC in the Docker test lab.
How do I block or mitigate CVE-2025-59287?¶
Apply the Nginx and Apache mitigation config included with this entry, and upgrade to a fixed version per the vendor advisory (see the NVD record for affected versions).
Is CVE-2025-59287 actively exploited?¶
Yes. CVE-2025-59287 is on the CISA Known Exploited Vulnerabilities (KEV) catalog, added 2025-10-24, which means it has been exploited in the wild. CISA set a federal remediation deadline of 2025-11-14. Prioritise patching and deploy the detection and prevention rules above.
For authorized security testing and research only. See the full source and NVD record.