CVE-2023-39478
Executive Summary
CVE-2023-39478 is a critical vulnerability in Softing Secure Integration Server that allows remote code execution (RCE) through exposure of a resource to the wrong sphere (CWE-668). The flaw resides in the handling of OPC FileDirectory namespaces, where insufficient validation of user-supplied data before creating a server object enables an attacker to bypass authentication and execute arbitrary code as root. Although authentication is required, the existing mechanism can be bypassed, making this a high-severity threat for industrial control systems (ICS) and operational technology (OT) environments. No public exploit code or patch is currently available, but the vulnerability has been disclosed via ZDI (ZDI-CAN-20547). The EPSS score is 0.0%, indicating low exploitation likelihood at this time, but the potential impact on critical infrastructure is severe.
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 industrial server product (Softing Secure Integration Server) used in OT/ICS environments. Supply chain risks include compromised vendor updates or third-party integrations with OPC UA systems.
CVSS Breakdown & Threat Level
- CVSS Score: 6.6 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network (AV:N) – exploitable remotely.
- Attack Complexity: Low (AC:L) – no special conditions required.
- Privileges Required: Low (PR:L) – authentication needed but bypassable.
- User Interaction: None (UI:N) – no user action required.
- Scope: Unchanged (S:U) – impact confined to vulnerable component.
- Confidentiality: High (C:H) – full data exposure.
- Integrity: High (I:H) – arbitrary code execution.
- Availability: High (A:H) – potential denial of service or system compromise.
Threat Level: High for OT/ICS environments due to root-level code execution and authentication bypass. Low EPSS suggests limited active exploitation, but the vulnerability is weaponizable.
Deep Dive & Mechanics
The vulnerability exists in the OPC FileDirectory namespace handling within Softing Secure Integration Server. The server fails to properly validate user-supplied data when creating server objects from OPC FileDirectory requests. This allows an attacker to craft malicious requests that bypass authentication and create objects in an unintended security context, leading to remote code execution as root.
Root Cause: The CreateServerObject function does not sanitize input from OPC FileDirectory namespaces, allowing path traversal or injection of malicious data that escalates privileges.
Attack Flow:
- Attacker sends a crafted OPC FileDirectory request to the server.
- The server processes the request without proper validation, creating a server object with attacker-controlled parameters.
- The attacker leverages this to execute arbitrary code, bypassing authentication due to a separate flaw in the authentication mechanism.
- Code runs in the context of root, granting full system control.
Affected Component: Softing Secure Integration Server (all versions prior to patch). No specific version range is confirmed.
Vulnerable vs. Patched Code
No official patch is available. The vulnerable code likely resides in the OPC FileDirectory handler, where user input is used directly in object creation without sanitization.
Vulnerable Code (Conceptual):
// Vulnerable: No validation of namespace input
void handle_opc_filedirectory(char *namespace) {
ServerObject *obj = create_server_object(namespace);
// obj created with attacker-controlled data
}
Patched Code (Expected):
// Patched: Validate and sanitize namespace input
void handle_opc_filedirectory(char *namespace) {
if (!validate_namespace(namespace)) {
return error("Invalid namespace");
}
ServerObject *obj = create_server_object(sanitize(namespace));
}
Exploitation & Lab Setup
Red Team (Offensive)
- Prerequisites: Network access to Softing Secure Integration Server (port 443/TCP default). Low-privilege credentials or ability to bypass authentication.
- Exploit Steps:
- Identify target server via Shodan dorks:
"Softing Secure Integration Server"or"OPC FileDirectory". - Craft a malicious OPC FileDirectory request with a payload in the namespace field (e.g., path traversal or command injection).
- Send request to trigger object creation and execute arbitrary code as root.
- Use a reverse shell or implant for persistence.
- Identify target server via Shodan dorks:
Example Payload (Conceptual):
import requests
url = "https://target:443/opc/filedirectory"
payload = {"namespace": "../../../tmp/;id"} # Command injection
requests.post(url, json=payload, auth=("user", "password"))
Blue Team (Defensive)
- Detection: Monitor OPC FileDirectory requests for anomalous namespace values (e.g., path traversal patterns, shell metacharacters).
- Honeypot: Deploy a decoy Softing server to capture exploit attempts.
- Mitigation: Restrict network access to the server, enforce strong authentication, and apply vendor patches when available.
Indicators of Compromise (IOCs)
- Network IOCs:
- Unusual OPC FileDirectory requests with long or suspicious namespace strings.
- Connections from unknown IPs to port 443/TCP on Softing servers.
- Outbound connections from the server to attacker-controlled IPs (reverse shell).
- File IOCs:
- Unexpected files in
/tmp/or/root/directories. - Modified server binaries or configuration files.
- Unexpected files in
- Process IOCs:
- Unusual processes running as root (e.g., reverse shell, crypto miner).
- Server process spawning child processes (e.g.,
/bin/sh).
Detection Engineering
YARA Rule
rule CVE_2023_39478_Softing_RCE {
meta:
description = "Detects exploitation attempts of CVE-2023-39478 via OPC FileDirectory namespace"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-39478"
strings:
$opc_fd = "OPC FileDirectory" ascii wide nocase
$namespace = "namespace" ascii wide nocase
$path_traversal = "../" ascii wide
$shell_cmd = "id" ascii wide nocase
condition:
$opc_fd and $namespace and ($path_traversal or $shell_cmd)
}
Sigma Rule
title: CVE-2023-39478 Softing Secure Integration Server RCE
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects exploitation attempts of CVE-2023-39478 via OPC FileDirectory namespace
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: softing
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/opc/filedirectory'
cs-uri-query|contains:
- '../'
- ';id'
- '|'
condition: selection
falsepositives:
- Legitimate OPC FileDirectory operations with valid namespaces
level: high
Suricata Rule
alert tcp any any -> any 443 (msg:"CVE-2023-39478 Softing Secure Integration Server RCE Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/opc/filedirectory"; http_uri; content:"namespace"; http_client_body; pcre:"/(\.\.\/|;id|\|)/Ri"; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Actions:
- Restrict network access to Softing Secure Integration Server using firewalls or VPNs.
- Enforce multi-factor authentication (MFA) to mitigate authentication bypass.
- Monitor logs for suspicious OPC FileDirectory requests.
- Long-term Fix:
- Apply vendor patch when released (currently unavailable).
- Upgrade to a patched version of Softing Secure Integration Server.
- Implement input validation and sanitization for all OPC FileDirectory namespaces.
- Compensating Controls:
- Deploy an intrusion detection system (IDS) with the provided Suricata rule.
- Use application whitelisting to prevent unauthorized code execution.
- Segment OT networks from IT networks.
Valters IT
DevSecOps & Cyber Threat Intelligence
Report generated for CVE-2023-39478
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.