CVE-2020-9054: Zyxel Multiple NAS Devices OS Command Injection Vulnerability
Zyxel · Multiple Network-Attached Storage (NAS) Devices · NVD published 2020-03-05 · posted 2026-10-21 · last modified 2026-10-08
What it is
Multiple ZyXEL network-attached storage (NAS) devices running firmware version 5.21 contain a pre-authentication command injection vulnerability, which may allow a remote, unauthenticated attacker to execute arbitrary code on a vulnerable device. ZyXEL NAS devices achieve authentication by using the weblogin.cgi CGI executable. This program fails to properly sanitize the username parameter that is passed to it. If the username parameter contains certain characters, it can allow command injection with the privileges of the web server that runs on the ZyXEL device. Although the web server does not run as the root user, ZyXEL devices include a setuid utility that can be leveraged to run any command with root privileges. As such, it should be assumed that exploitation of this vulnerability can lead to remote code execution with root privileges. By sending a specially-crafted HTTP POST or GET request to a vulnerable ZyXEL device, a remote, unauthenticated attacker may be able to execute arbitrary code on the device. This may happen by directly connecting to a device if it is directly exposed to an attacker. However, there are ways to trigger such crafted requests even if an attacker does not have direct connectivity to a vulnerable devices. For example, simply visiting a website can result in the compromise of any ZyXEL device that is reachable from the client system. Affected products include: NAS326 before firmware V5.21(AAZF.7)C0 NAS520 before firmware V5.21(AASZ.3)C0 NAS540 before firmware V5.21(AATB.4)C0 NAS542 before firmware V5.21(ABAG.4)C0 ZyXEL has made firmware updates available for NAS326, NAS520, NAS540, and NAS542 devices. Affected models that are end-of-support: NSA210, NSA220, NSA220+, NSA221, NSA310, NSA310S, NSA320, NSA320S, NSA325 and NSA325v2
| Weakness | CWE-78 |
|---|---|
| CVSS vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (source: [email protected]) |
| CISA due date | 2022-04-15 (for US federal agencies under BOD; a good deadline for everyone) |
| ATT&CK tactics | Initial Access → Execution |
Exploitation evidence
First exploit evidence seen: 2022-03-25 (earliest date across the sources below).
Exploited in the wild
- CISA KEV: listed since 2022-03-25. Source
Public exploit code
GitHub proof-of-concept repositories below quality bar
1 public repositories from 1 accounts, first seen 2021-09-09.
Verify before running: public PoCs can be malicious. Read the code and only run it in an isolated lab. A PoC means exploit code is public, not that this CVE is exploited in the wild.
Sources: CISA KEV · nomi-sec/PoC-in-GitHub.
Defend the Chain
The attack chain for CVE-2020-9054 laid across the MITRE ATT&CK Enterprise tactics. Solid cards come from the MITRE CTID KEV mappings; dashed cards are inferred by CVERadar from the CWE or description. Correct defences are real ATT&CK mitigations for that technique.
Pick a red technique card on the board, then choose the defence that stops it.
Defend against T1190 Exploit Public-Facing Application Inferred
Inferred from CWE CWE-78
How to fix it
CISA required action
Apply updates per vendor instructions. (source: CISA KEV)
Fixed versions
- zyxel nas326 firmware: upgrade to 5.21\(aazf.10\)c0 or later
- zyxel nas520 firmware: upgrade to 5.21\(aasz.3\)c0 or later
- zyxel nas540 firmware: upgrade to 5.21\(aatb.7\)c0 or later
- zyxel nas542 firmware: upgrade to 5.21\(abag.7\)c0 or later
- zyxel atp100 firmware: upgrade to 4.35\(abps.3\)c0 or later (affected from 4.35)
- zyxel atp200 firmware: upgrade to 4.35\(abfw.3\)c0 or later (affected from 4.35)
- zyxel atp500 firmware: upgrade to 4.35\(abfu.3\)c0 or later (affected from 4.35)
- zyxel atp800 firmware: upgrade to 4.35\(abiq.3\)c0 or later (affected from 4.35)
- zyxel usg20-vpn firmware: upgrade to 4.35\(abaq.3\)c0 or later (affected from 4.35)
- zyxel usg20w-vpn firmware: upgrade to 4.35\(abar.3\)c0 or later (affected from 4.35)
- zyxel usg40 firmware: upgrade to 4.35\(aala.3\)c0 or later (affected from 4.35)
- zyxel usg40w firmware: upgrade to 4.35\(aalb.3\)c0 or later (affected from 4.35)
- zyxel usg60 firmware: upgrade to 4.35\(aaky.3\)c0 or later (affected from 4.35)
- zyxel usg60w firmware: upgrade to 4.35\(aakz.3\)c0 or later (affected from 4.35)
- zyxel usg110 firmware: upgrade to 4.35\(aaph.3\)c0 or later (affected from 4.35)
- zyxel usg210 firmware: upgrade to 4.35\(aapi.3\)c0 or later (affected from 4.35)
- zyxel usg310 firmware: upgrade to 4.35\(aapj.3\)c0 or later (affected from 4.35)
- zyxel usg1100 firmware: upgrade to 4.35\(aapk.3\)c0 or later (affected from 4.35)
- zyxel usg1900 firmware: upgrade to 4.35\(aapl.3\)c0 or later (affected from 4.35)
- zyxel usg2200 firmware: upgrade to 4.35\(abae.3\)c0 or later (affected from 4.35)
- zyxel vpn50 firmware: upgrade to 4.35\(abhl.3\)c0 or later (affected from 4.35)
- zyxel vpn100 firmware: upgrade to 4.35\(abfv.3\)c0 or later (affected from 4.35)
- zyxel vpn300 firmware: upgrade to 4.35\(abfc.3\)c0 or later (affected from 4.35)
- zyxel vpn1000 firmware: upgrade to 4.35\(abip.3\)c0 or later (affected from 4.35)
- zyxel zywall110 firmware: upgrade to 4.35\(aaaa.3\)c0 or later (affected from 4.35)
Derived from the NVD CPE configuration (versionEndExcluding / versionEndIncluding). Always confirm with the vendor advisory.
Vendor advisories and patches
- https://www.zyxel.com/support/remote-code-execution-vulnerability-of-NAS-products.shtml (Vendor Advisory)
MITRE ATT&CK mitigations for this chain
- M1048 Application Isolation and Sandboxing (for T1190, T1203) : Application isolation will limit what other processes and system features the exploited target can access.
- M1037 Filter Network Traffic (for T1190) : Restrict outbound network traffic from public-facing servers to prevent unauthorized connections from initiating communications with attacker-controlled infrastructure. While this may not prevent the initial exploitation, it limits the attacker's ability to verify and control the compromised server post-exploit, reduci
- M1030 Network Segmentation (for T1190) : Segment externally facing servers and services from the rest of the network with a DMZ or on separate hosting infrastructure.
- M1016 Vulnerability Scanning (for T1190) : Regularly scan externally facing systems for vulnerabilities and establish procedures to rapidly patch systems when critical vulnerabilities are discovered through scanning and through public disclosure.
- M1026 Privileged Account Management (for T1190, T1059) : Use least privilege for service accounts will limit what permissions the exploited process gets on the rest of the system.
- M1050 Exploit Protection (for T1190, T1203) : Web Application Firewalls may be used to limit exposure of applications to prevent exploit traffic from reaching the application.
- M1035 Limit Access to Resource Over Network (for T1190) : Ensure that all publicly exposed services are actually intended to be so, and restrict access to any that should only be available internally.
- M1051 Update Software (for T1190, T1203) : Update software regularly by employing patch management for externally exposed applications.
- M1033 Limit Software Installation (for T1059) : Prevent user installation of unrequired command and scripting interpreters.
- M1045 Code Signing (for T1059) : Where possible, only permit execution of signed scripts.
Detection Generic guidance
- Initial Access: Alert on unusual requests to the affected service (odd paths, oversized payloads, exploit strings) in WAF, reverse-proxy and application logs.
- Execution: Watch for the service process spawning shells or script interpreters (cmd.exe, powershell, sh, bash, python) via EDR process-tree rules.
Response checklist Generic guidance
- Inventory: find every instance of the affected product and version (include internet-facing and forgotten ones).
- Patch or mitigate per the vendor advisory; if you cannot patch, remove internet exposure or apply the vendor workaround.
- Assume compromise if the system was exposed before patching: hunt for the indicators in the advisory and review logs back to the disclosure date.
- Rotate credentials and secrets stored on or used by the affected system if compromise cannot be ruled out.
Sources
- NVD: CVE-2020-9054
- CVE.org record
- CISA Known Exploited Vulnerabilities catalog
- FIRST EPSS (2026-10-24)
- https://cwe.mitre.org/data/definitions/78.html (Third Party Advisory)
- https://kb.cert.org/artifacts/cve-2020-9054.html (Third Party Advisory, US Government Resource)
- https://kb.cert.org/vuls/id/498544/ (Third Party Advisory, US Government Resource)
- https://krebsonsecurity.com/2020/02/zyxel-fixes-0day-in-network-storage-devices/ (Exploit, Third Party Advisory)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2020-9054 (US Government Resource)