Vulnerability record · CVE-2021-42071 · published 7 October 2021
CVE-2021-42071: Visual Tools DVR VX16 unauthenticated OS command injection via User-Agent header
Visual Tools · Dvr Vx16 Firmware
Visual Tools DVR VX16 firmware 4.2.28.0 passes the HTTP User-Agent header into a shell command in cgi-bin/slogin/login.py without sanitizing shell metacharacters. An unauthenticated remote attacker can inject commands that execute on the device. The flaw is a classic OS command injection (CWE-78) with a critical CVSS score of 9.8.
Description
In Visual Tools DVR VX16 4.2.28.0, an unauthenticated attacker can achieve remote command execution via shell metacharacters in the cgi-bin/slogin/login.py User-Agent HTTP header.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Automated analysis
critical priorityUnauthenticated remote command execution with a 9.8 CVSS score and public exploit code makes this trivially exploitable against exposed DVRs.
What it is
Visual Tools DVR VX16 firmware 4.2.28.0 passes the HTTP User-Agent header into a shell command in cgi-bin/slogin/login.py without sanitizing shell metacharacters. An unauthenticated remote attacker can inject commands that execute on the device. The flaw is a classic OS command injection (CWE-78) with a critical CVSS score of 9.8.
Impact
An attacker gains remote command execution as the web service account on the DVR, allowing full compromise of the device, including access to video feeds, credentials and any connected network.
Attack surface
Reachable over the network through the DVR's web interface; no authentication or user interaction is required, as the malicious payload is carried in the User-Agent header of a request to cgi-bin/slogin/login.py.
Exploitation
Public exploit code exists (Exploit-DB 50098 and a SWASCAN advisory), and EPSS is very high at 0.699 (99.3rd percentile), though the CVE is not listed in CISA KEV.
What to do
- Apply the vendor firmware update for Visual Tools DVR VX16 if one is available; check visual-tools.com for the latest release.
- If no patch exists, isolate affected DVRs on a segmented VLAN with no internet exposure and restrict management access to trusted hosts.
- Place the device behind a reverse proxy or WAF that strips or rejects shell metacharacters in HTTP headers, especially User-Agent.
- Disable or block remote access to cgi-bin/slogin/login.py from untrusted networks.
- Replace end-of-life or unpatched DVR units with supported hardware.
Detection
- Monitor web server and DVR logs for requests to cgi-bin/slogin/login.py with User-Agent values containing shell metacharacters such as ;, |, $, `, or &&.
- Alert on unexpected outbound connections or process execution from the DVR host, which may indicate injected commands.
- Use network monitoring to detect anomalous HTTP requests to DVR management interfaces from external or unusual source addresses.
- Audit DVR devices for signs of tampering, new accounts, or modified configuration.
This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.
Affected products
1 vulnerable configurations from NVD's CPE data, grouped by vendor and product.
References
| Link | Tags |
|---|---|
| https://visual-tools.com/ | Vendor Advisory |
| https://www.exploit-db.com/exploits/50098 | ExploitThird Party AdvisoryVDB Entry |
| https://www.swascan.com/security-advisory-visual-tools-dvr-cve-2021-42071/ | ExploitThird Party Advisory |
| https://visual-tools.com/ | Vendor Advisory |
| https://www.exploit-db.com/exploits/50098 | ExploitThird Party AdvisoryVDB Entry |
| https://www.swascan.com/security-advisory-visual-tools-dvr-cve-2021-42071/ | ExploitThird Party Advisory |
Track CVE-2021-42071 inside VULONE
Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.
Related vulnerabilities
Same products first, then exploited flaws of the same weakness class.
Source: NIST National Vulnerability Database (record CVE-2021-42071), CISA KEV, FIRST EPSS (scores of 2026-09-26). This page is refreshed as NVD updates the record.