CVE-2020-10987
Critical · 9.8 CISA KEVCVSS
9.8
EPSS
79.8%
Published
Jul 13, 2020
CISA due date
May 3, 2022
Cloudanix analysis
A flaw in certain network devices lets attackers run any commands they want on the device just by sending a specially crafted request, giving them full control without needing a password.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Trivial
- Impact
- Remote Code Execution
- Component
- Network Service
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
The goform/setUsbUnload endpoint accepts a deviceName POST parameter that is passed directly to system command execution without sanitization, enabling arbitrary command execution with the privileges of the web server process.
Why it matters to the business
Attackers can gain complete remote control of affected devices, leading to network compromise, data theft, or use as a pivot point; the vulnerability has been actively exploited in the wild with a CISA remediation deadline that has long passed, increasing urgency for any remaining instances.
How an attack unfolds
An unauthenticated attacker sends a crafted HTTP POST request to the vulnerable endpoint, embedding operating system commands inside the deviceName parameter; the server executes the commands, allowing the attacker to read files, install backdoors, or pivot further into the network. Public exploit code and active exploitation have been observed.
How to fix it
Upgrade pomerium/pomerium (GIT) to commit fff798d0e0e3993dfe68513d7874e03fdf679a96 or later. If the device cannot be updated, restrict network access to the management interface and disable USB-related functionality.
How to confirm the fix worked
Confirm the endpoint no longer executes injected commands by testing with a benign payload such as a sleep command and verifying the response contains no execution artifacts; review commit logs for the listed fix hash.
Typical attack path
- Discover exposed web interface of the affected device
- Craft malicious POST request to /goform/setUsbUnload with command payload in deviceName
- Execute arbitrary commands to establish persistence or exfiltrate data
- Pivot to other systems on the network
How to detect it
Search web server access logs for POST requests to /goform/setUsbUnload containing suspicious characters or command syntax in the deviceName parameter; look for unexpected process spawns or file modifications following such requests.
- POST /goform/setUsbUnload
- deviceName=.*[;&|`$]
- shell execution artifacts after USB unload requests
What your security team should do
- Immediately apply the listed commit or remove the device from the network
- Scan for any exposed instances of the vulnerable endpoint
- Monitor logs for suspicious POST requests containing shell metacharacters in deviceName
- Implement network segmentation to limit exposure of management interfaces
The record
The goform/setUsbUnload endpoint of Tenda AC15 AC1900 version 15.03.05.19 allows remote attackers to execute arbitrary system commands via the deviceName POST parameter.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-62853 ThingLinks is an enterprise IoT platform. CWE-78
- CVE-2026-119335 Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing… CWE-78
- CVE-2026-116241 pgAdmin 4's Import/Export Data tool wraps a user's query export in a psql \copy (...) TO… CWE-78
- CVE-2026-119713 Paperclip 2026.403.0 before 2026.416.0 contains a remote code execution vulnerability… CWE-78
- CVE-2026-119288 Zuke is a code-first, strongly typed build automation system for Deno. CWE-78
- CVE-2026-118238 The Tenda W18E web management server is vulnerable to OS command injection via the… CWE-78
- CVE-2026-91913 Dell OpenManage Enterprise, versions prior to 4.8.0, contains an Improper Neutralization… CWE-78
- CVE-2026-118992 CallBackery versions before 0.62.0 for Perl allow OS command execution via sqlite3 shell… CWE-78