CVE-2020-9054
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
- CVSS
- 9.8Criticalscored by CISA
- Exploited in the wild
- Yes, in CISA KEV since 25 Mar 2022CISA deadline for US federal agencies: 15 Apr 2022unvetted proof-of-concept code on github
- EPSS
- > 99.9%chance of exploitation in the next 30 daystop 0.1% of scored CVEsFIRST score of 11 Nov 2026
- Fix
- Patch availablesee the advisories in the references
- Published
- 4 Mar 2020analysed here 12 Nov 2026
Do first. Apply updates per vendor instructions. (CISA's required action for this KEV entry)
Summary
Triage
The summary, impact and action text on this page are written by our AI analysis pipeline, or taken from the NVD description when a CVE was imported from NVD. They are not the vendor's wording: check them against the sources. A longer AI executive summary and technical analysis are generated for signed-in accounts on the Max plan.
Affected products
| Product | Affected versions | Vendor says fixed in |
|---|---|---|
| ZyXEL NAS326 | <= V5.21(AAZF.7)C0Vendor says fixed in: not stated | |
| ZyXEL NAS520 | <= V5.21(AASZ.3)C0Vendor says fixed in: not stated | |
| ZyXEL NAS540 | <= V5.21(AATB.4)C0Vendor says fixed in: not stated | |
| ZyXEL NAS542 | <= V5.21(ABAG.4)C0Vendor says fixed in: not stated | |
| ZyXEL NSA310 | <= V4.75(AALH.2)C0Vendor says fixed in: not stated | |
| ZyXEL NSA320S | <= V4.75(AANV.2)C0Vendor says fixed in: not stated | |
| ZyXEL NSA325 | <= V4.81(AAAJ.1)C0Vendor says fixed in: not stated | |
| ZyXEL NSA325v2 | <= V4.81(AALS.1)C0Vendor says fixed in: not stated |
As published in the CVE Program record. A version outside these ranges is not a statement that it is unaffected — vendors sometimes understate a range, and distribution-backported builds carry upstream numbers that do not reflect what was patched into them.
Products named in our analysis
- zyxel:nas326_firmware
- zyxel:nas520_firmware
- zyxel:nas540_firmware
- zyxel:nas542_firmware
- zyxel:atp100_firmware
- zyxel:atp200_firmware
- zyxel:atp500_firmware
- zyxel:atp800_firmware
- zyxel:usg20-vpn_firmware
- zyxel:usg20w-vpn_firmware
- zyxel:usg40_firmware
- zyxel:usg40w_firmware
- zyxel:usg60_firmware
- zyxel:usg60w_firmware
- zyxel:usg110_firmware
- zyxel:usg210_firmware
- zyxel:usg310_firmware
- zyxel:usg1100_firmware
- zyxel:usg1900_firmware
- zyxel:usg2200_firmware
- zyxel:vpn50_firmware
- zyxel:vpn100_firmware
- zyxel:vpn300_firmware
- zyxel:vpn1000_firmware
- zyxel:zywall110_firmware
- zyxel:zywall310_firmware
- zyxel:zywall1100_firmware
Fix and mitigation
WAF and other mitigations
Can a WAF block it? Partly. OS command injection puts shell syntax into the request. WAF rules catch common shell commands but miss encoded or unusual payloads.
Also consider: shlex/execve-style APIs
Based on the weakness type only; no CVE-specific evidence yet. We check Cloudflare, AWS, Google Cloud Armor and Azure; for Akamai, Imperva, Fastly, F5, ask your vendor.
Remediation steps (AI-written)
Step-by-step remediation is generated for accounts on the Max plan, for CVEs that match a technology in their stack. Add this technology to your stack to see the fix checklist.
Exploitation evidence
- CISA KEV catalog
- Listed since 25 Mar 2022.
- CISA due date
- 15 Apr 2022, the remediation deadline for US federal agencies
- CISA required action
- Apply updates per vendor instructions.
- Public exploit code
- Unvetted proof-of-concept code on GitHub: 1 GitHub proof of concept · 1 Nuclei template
- CISA SSVC
- exploitation active, automatable no, technical impact totalAssessed by CISA 7 Feb 2025 (SSVC 2.0.3). Exploitation is none, poc (public proof of concept) or active.
Nuclei
- Zyxel NAS Firmware 5.21- Remote Code Executiondetection template, critical
GitHub proofs of concept
- darrenmartyn/CVE-2020-90543 stars
Listed so you can judge urgency, not as a recommendation to run anything. GitHub “proofs of concept” are unvetted: some are fake or carry malware. Exploit-DB marks the entries its staff verified.
Timeline
- 4 Mar 2020Published
- 9 Sept 2021First proof-of-concept repository on GitHub (unvetted)553 days (about 2 years) later
- 25 Mar 2022Added to CISA KEV (exploited in the wild)197 days (about 7 months) later
- 15 Apr 2022CISA remediation due date (US federal agencies)21 days later
- 7 Feb 2025CISA SSVC assessment: exploitation active1,030 days (about 3 years) later
- 7 Oct 2026CVE record last updated607 days (about 2 years) later
- 12 Nov 2026Analysed by vulneraibility.com36 days later
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
| Metric | Value | What it means |
|---|---|---|
| Attack vector | NetworkReachable over the internet or any routable network. | Reachable over the internet or any routable network. |
| Attack complexity | LowRepeatable attack, no special conditions. | Repeatable attack, no special conditions. |
| Privileges required | NoneThe attacker needs no prior access. | The attacker needs no prior access. |
| User interaction | NoneNo victim action needed. | No victim action needed. |
| Scope | UnchangedImpact stays within the vulnerable component. | Impact stays within the vulnerable component. |
| Confidentiality | HighTotal data disclosure possible. | Total data disclosure possible. |
| Integrity | HighComplete modification possible. | Complete modification possible. |
| Availability | HighFull outage possible. | Full outage possible. |
Common questions
Is CVE-2020-9054 being exploited?
Yes. CVE-2020-9054 appears in CISA's Known Exploited Vulnerabilities catalog, which means exploitation in the wild has been confirmed and reported. Treat it as active rather than theoretical, and patch it ahead of higher-scoring vulnerabilities that carry no exploitation evidence.
How severe is CVE-2020-9054?
CVE-2020-9054 is rated Critical with a CVSS score of 9.8. Severity describes how bad exploitation would be, not how likely it is: pair it with exploitation evidence before deciding what to patch first.
Is there a patch for CVE-2020-9054?
Yes. A fix has been recorded for CVE-2020-9054. The vendor advisory is the authority on the exact fixed version — apply it from there rather than from a summary.
What does CVE-2020-9054 affect?
CVE-2020-9054 affects zyxel:nas326_firmware, zyxel:nas520_firmware, zyxel:nas540_firmware, zyxel:nas542_firmware, and 23 further products or versions. Confirm the exact affected versions against the vendor advisory before deciding you are exposed.
Exploitation status reflects CISA's KEV catalog as we last synced it. Check the catalog directly.
References
6 references in the CVE record, grouped by the tags the record gives them.
Advisories (1)
- kb.cert.org /vuls/id/498544/
Other links (5)
- cwe.mitre.org /data/definitions/78.html
- zyxel.com /support/remote-code-execution-vulnerability-of-NAS-products.shtml
- kb.cert.org /artifacts/cve-2020-9054.html
- krebsonsecurity.com /2020/02/zyxel-fixes-0day-in-network-storage-devices/
- cisa.gov /known-exploited-vulnerabilities-catalog?field_cve=CVE-2020-9054
Where the data on this page comes from
- CVE List (CVE.org): description, affected versions, references; CVE Terms of Use
- NVD: CVSS and CPE data
- CISA KEV catalog: exploitation, date added, due date
- CISA Vulnrichment (ADP): SSVC decision points
- FIRST EPSS: exploit probability and percentile
- Nuclei templates: detection templates
- PoC-in-GitHub: GitHub repositories that claim a proof of concept
Summary, impact and triage tags: written by our AI analysis pipeline from the sources above. Check them against the sources.
Similar CVEs
Get CVEs like this by email. Join the free digest: the CVEs we flag as major, all CVSS 8.0 or higher, in up to three emails a day (sent at 05:00, 11:00 and 15:00 UTC). Matching alerts to the products you run needs an account, and accounts are invite-only during the beta.