CVE-2026-22199
Executive Summary
CVE-2026-22199 is a pre-authentication path traversal vulnerability in Voltronic Power SNMP Web Pro version 1.1, specifically within the upload.cgi endpoint. This flaw allows unauthenticated attackers to read arbitrary files on the device filesystem by injecting directory traversal sequences (e.g., ../) into the params parameter. The vulnerability is rated CVSS 7.5 (High) and poses a critical risk to industrial and enterprise environments using this device for power management. Attackers can exploit this to disclose sensitive files such as password hashes, which can be cracked offline to obtain root-level access, leading to full system compromise. No official patch is available, and the vendor has not responded to disclosure attempts.
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 any software package manager (NPM, PyPI, Go, Ruby). It affects a standalone embedded device firmware (Voltronic Power SNMP Web Pro version 1.1). No supply chain implications exist beyond the device itself.
CVSS Breakdown & Threat Level
- CVSS Score: 7.5 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: None
- Availability Impact: None
Threat Level: High. The vulnerability is trivial to exploit, requires no authentication, and can lead to full device compromise via credential disclosure.
Deep Dive & Mechanics
The vulnerability resides in the upload.cgi CGI script, which is part of the SNMP Web Pro web interface. The endpoint accepts a params parameter that is used to construct file paths for file upload operations. Due to insufficient input validation, an attacker can supply directory traversal sequences (e.g., ../../etc/shadow) to read arbitrary files outside the intended upload directory.
Root Cause: The application does not sanitize or validate the params parameter for path traversal patterns. The CGI script likely uses the parameter directly in file operations (e.g., fopen() or readfile()) without checking for ../ sequences.
Attack Flow:
- Attacker sends a crafted HTTP GET request to
http://<target>/cgi-bin/upload.cgi?params=../../etc/shadow. - The server processes the request and reads the file at the traversed path.
- The file content is returned in the HTTP response, disclosing sensitive data.
Impact: Disclosure of password hashes (e.g., /etc/shadow), configuration files, SSH keys, or other sensitive data. Offline cracking of root password hashes can grant full administrative access.
Vulnerable vs. Patched Code
Since no official patch exists, the vulnerable code is the only known implementation. The following is a hypothetical representation of the vulnerable CGI script logic:
Vulnerable Code (Python-like pseudocode):
import cgi
import os
def handle_upload():
form = cgi.FieldStorage()
params = form.getvalue('params')
# No sanitization - directly used in file path
filepath = '/var/upload/' + params
if os.path.exists(filepath):
with open(filepath, 'r') as f:
print(f.read())
else:
print("File not found")
Patched Code (Hypothetical):
import cgi
import os
def handle_upload():
form = cgi.FieldStorage()
params = form.getvalue('params')
# Sanitize: remove directory traversal sequences
safe_params = os.path.basename(params)
filepath = '/var/upload/' + safe_params
if os.path.exists(filepath):
with open(filepath, 'r') as f:
print(f.read())
else:
print("File not found")
The patched version uses os.path.basename() to strip any directory components, preventing traversal.
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- Target device running Voltronic Power SNMP Web Pro version 1.1
- Network access to the web interface (typically port 80 or 443)
Exploit Steps:
- Identify the target:
nmap -p 80,443 <target_ip> - Verify the endpoint:
curl -v http://<target>/cgi-bin/upload.cgi - Exploit path traversal:
curl "http://<target>/cgi-bin/upload.cgi?params=../../etc/shadow" - Extract password hashes and crack offline:
hashcat -m 1800 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
Example Output:
root:$6$salt$hash:0:0:root:/root:/bin/bash
Blue Team (Defensive)
Detection Steps:
- Monitor web server logs for suspicious
paramsvalues containing../or..\\. - Deploy WAF rules to block directory traversal patterns.
- Restrict access to the web interface to trusted IPs only.
- Implement file integrity monitoring on sensitive files (e.g.,
/etc/shadow).
Honeypot Setup:
- Deploy a decoy device with the same firmware to capture attacker behavior.
- Log all requests to
upload.cgifor analysis.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP GET requests to
/cgi-bin/upload.cgiwithparamscontaining../or..\\ - Outbound connections from the device to unknown IPs (if attacker gains shell access)
File System IOCs:
- Unauthorized access to
/etc/shadow,/etc/passwd, or other sensitive files - Modified configuration files in
/var/upload/
Log IOCs:
- Web server logs showing
params=../../etc/shadowor similar patterns - CGI error logs indicating file not found errors for traversed paths
Detection Engineering
YARA Rule
rule CVE_2026_22199_Path_Traversal {
meta:
description = "Detects path traversal attempts targeting upload.cgi in Voltronic Power SNMP Web Pro"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2026-22199"
strings:
$traversal = /params=[^&]*\.\.\// nocase
$endpoint = "/cgi-bin/upload.cgi" nocase
condition:
$endpoint and $traversal
}
Sigma Rule
title: CVE-2026-22199 Path Traversal in Voltronic Power SNMP Web Pro
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects HTTP requests with directory traversal sequences in the params parameter of upload.cgi
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-uri-query|contains:
- "/cgi-bin/upload.cgi?params="
- "..%2f"
- "..%5c"
condition: selection
falsepositives:
- Legitimate file paths containing dots (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2026-22199 Path Traversal in Voltronic Power SNMP Web Pro"; flow:to_server,established; content:"/cgi-bin/upload.cgi"; http_uri; content:"params="; http_uri; pcre:"/params=[^&]*\.\.\//i"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the device: Place the SNMP Web Pro device on a separate VLAN with strict firewall rules.
- Disable the web interface: If not required, disable the CGI endpoint or the entire web service.
- Apply WAF rules: Use a web application firewall to block requests containing
../or..\\in theparamsparameter. - Monitor logs: Enable detailed logging and alert on suspicious
upload.cgirequests.
Long-Term Fix:
- Since no vendor patch exists, consider replacing the device with a patched alternative.
- Implement input validation at the application level (e.g., using
os.path.basename()). - Conduct a security audit of all CGI scripts on the device.
Workaround:
- Restrict access to the web interface using IP whitelisting or VPN.
- Change default credentials and use strong passwords.
Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert