CVE-2026-35717 Overview
CVE-2026-35717 is a stack-based buffer overflow in the export_language.cgi binary shipped with VIVOTEK FD8136 firmware version FD8136-VVTK-0300a. The handler reads the attacker-supplied Content-Length header and passes it directly to fread() as the read size into a fixed 0x60-byte stack buffer. The binary is compiled without stack canaries, so an authenticated attacker can overwrite the saved link register and redirect execution. Successful exploitation yields arbitrary code execution as root on the IP camera.
Critical Impact
Authenticated remote attackers can execute arbitrary code as root on affected VIVOTEK FD8136 cameras through a crafted POST request to /cgi-bin/admin/export_language.cgi.
Affected Products
- VIVOTEK FD8136 (hardware)
- VIVOTEK FD8136 firmware version FD8136-VVTK-0300a
- Deployments exposing the /cgi-bin/admin/export_language.cgi endpoint
Discovery Timeline
- 2026-06-02 - CVE-2026-35717 published to NVD
- 2026-06-03 - Last updated in NVD database
Technical Details for CVE-2026-35717
Vulnerability Analysis
The flaw resides in export_language.cgi, an administrative CGI binary in the VIVOTEK FD8136 firmware. The handler accepts a POST request to /cgi-bin/admin/export_language.cgi and uses the HTTP Content-Length header to determine how many bytes to read from the request body. That value is passed without bounds checking to fread(), which writes into a fixed 0x60-byte buffer allocated on the stack.
Because the binary is compiled without stack canaries, oversized request bodies overwrite adjacent stack data, including the saved link register on this ARM-based platform. Control of the link register lets an attacker redirect execution when the function returns. The CGI runs in the camera's administrative context, so successful exploitation grants root-level code execution. The issue is classified as a stack-based buffer overflow ([CWE-121]).
Root Cause
The root cause is unvalidated use of an attacker-controlled length parameter. The handler trusts the Content-Length value provided in the HTTP request and uses it as the size argument to fread() against a fixed-size stack buffer. No length comparison, truncation, or safe-copy primitive is applied, and the absence of stack canaries removes a common runtime mitigation.
Attack Vector
Exploitation requires network access to the camera's web interface and valid administrative credentials. The attacker sends a crafted HTTP POST to /cgi-bin/admin/export_language.cgi with a Content-Length header larger than 0x60 and a body sized to overwrite the saved link register. With control of the link register, the attacker can pivot to attacker-controlled code or ROP gadgets within the binary. EPSS for this CVE is 0.163% (percentile 36.9), indicating no observed exploitation activity at this time.
No verified public proof-of-concept code has been published. Technical research is referenced in the GitHub CVE-2026-35717 Research repository.
Detection Methods for CVE-2026-35717
Indicators of Compromise
- POST requests to /cgi-bin/admin/export_language.cgi with Content-Length values significantly larger than 0x60 (96 bytes).
- Unexpected outbound connections originating from FD8136 cameras, particularly reverse shells to non-management IPs.
- Crashes or restarts of the export_language.cgi process recorded in device or upstream syslog.
Detection Strategies
- Inspect HTTP logs from camera reverse proxies or network sensors for POST requests targeting export_language.cgi with abnormal body sizes.
- Deploy IDS/IPS signatures that flag requests to /cgi-bin/admin/ endpoints containing oversized payloads or non-printable bytes consistent with shellcode.
- Correlate authentication events on the camera with subsequent administrative CGI access from the same source.
Monitoring Recommendations
- Forward camera and network device logs to a centralized SIEM and alert on administrative CGI access from outside management subnets.
- Monitor network flows for FD8136 devices initiating outbound sessions, which deviate from their normal RTSP/HTTP server role.
- Track firmware versions across the IP camera fleet and alert when FD8136-VVTK-0300a remains in production after a fixed build is published.
How to Mitigate CVE-2026-35717
Immediate Actions Required
- Restrict network access to the camera management interface to trusted administrative VLANs using firewall or ACL rules.
- Rotate administrative credentials on all FD8136 devices and disable any shared or default accounts.
- Audit existing devices for the firmware version FD8136-VVTK-0300a and prioritize them for remediation.
Patch Information
At the time of publication, no fixed firmware build was listed in the NVD references. Consult the Vivotek Security Portal for the latest firmware release notes and apply any security update that supersedes FD8136-VVTK-0300a as soon as it becomes available.
Workarounds
- Place affected cameras behind a network segment that blocks inbound HTTP/HTTPS from user and internet-facing networks.
- Require VPN or jump-host access for any administrative interaction with the camera's web UI.
- Disable remote administration features on the camera where the deployment does not require them.
# Example: restrict access to the camera management interface with iptables
# Replace 10.0.10.0/24 with your administrative subnet and 192.0.2.25 with the camera IP
iptables -A FORWARD -p tcp -d 192.0.2.25 --dport 80 -s 10.0.10.0/24 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.0.2.25 --dport 443 -s 10.0.10.0/24 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.0.2.25 --dport 80 -j DROP
iptables -A FORWARD -p tcp -d 192.0.2.25 --dport 443 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

