CVE-2020-9054 | ZyXEL NAS products running firmware version 5.21 and earlier are vulnerable to pre-authentication command injection in weblogin.cgi

Exp

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

Published: 2020-03-04 Last update: 2025-11-10 Assigner: [email protected] Source: [email protected]

Conclusion & alert: CVE-2020-9054 is rated Critical Active Threat (99.3/100): CVSS Critical severity, with high exploitation likelihood (EPSS 94.31%, 100th percentile). Core evidence: CISA KEV confirms active exploitation (added 2022-03-25) affecting Zyxel / Multiple Network-Attached Storage (NAS) Devices. a weakness (CWE-78) Unauthenticated remote administrative access may be possible. Mandatory action: The CISA remediation deadline has passed—treat as an emergency patch priority.

Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.

CISA KEV Record for CVE-2020-9054

Name: Zyxel Multiple NAS Devices OS Command Injection Vulnerability · CISA KEV detail

Exploit added: 2022-03-25

Action due: 2022-04-15

Required action: Apply updates per vendor instructions.

Public exploit references (Exploit-DB) for CVE-2020-9054

EDB-ID Source Kind Published Link
nvd_ref exploit_tag Exploit-DB ↗

Exploit prediction scoring system (EPSS) score for CVE-2020-9054

EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).

# Date Old EPSS score New EPSS score Delta (New - Old)
1 2025-11-21 94.22% 94.31% +0.09%
2 2025-11-18 94.27% 94.22% -0.05%
3 2025-06-06 94.27%

Full EPSS history (24 records total)

Common vulnerability scoring system (CVSS) metrics for CVE-2020-9054

CVSS metrics for this CVE.

Base score Version Severity Vector Exploitability Impact Score source
9.8 3.1 CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:H)
Serious risk that confidential data gets exposed in a big way.
Integrity (I:H)
They could widely tamper with or forge data—trust in the data is badly hurt.
Availability (A:H)
Could take the service down hard or make it unusable for people who depend on it.
3.9 5.9 [email protected]
9.8 3.1 CRITICAL
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Click to expand
Attack vector (AV:N)
Could be attacked over the internet or any normal routed network—not just someone sitting at the machine.
Attack complexity (AC:L)
Once they can reach the bug, pulling it off is straightforward—no weird race conditions or rare setup.
Privileges required (PR:N)
No account or special rights needed—anonymous or random user is enough.
User interaction (UI:N)
Nobody has to click “OK” or open a trap file; it can work without a victim helping.
Scope (S:U)
Damage stays in the same “trust bubble” as the broken component—no big spill into unrelated systems.
Confidentiality (C:H)
Serious risk that confidential data gets exposed in a big way.
Integrity (I:H)
They could widely tamper with or forge data—trust in the data is badly hurt.
Availability (A:H)
Could take the service down hard or make it unusable for people who depend on it.
3.9 5.9 134c704f-9b21-4f2e-91b3-4a467353bcc0
10.0 2.0 HIGH
AV:N/AC:L/Au:N/C:C/I:C/A:C Click to expand
Access vector (AV:N)
Can be exploited remotely over network reachability.
Access complexity (AC:L)
Exploitation conditions are straightforward and predictable.
Authentication (AU:N)
No authentication is required.
Confidentiality impact (C:C)
Complete confidentiality impact.
Integrity impact (I:C)
Complete integrity impact.
Availability impact (A:C)
Complete availability impact.
10.0 10.0 [email protected]

Weakness enumeration for CVE-2020-9054

Affected software / configurations for CVE-2020-9054

Vendor Product Version Raw CPE
zyxel nas326_firmware < 5.21\(aazf.7\)c0 cpe:2.3:o:zyxel:nas326_firmware:*:*:*:*:*:*:*:*
zyxel nas520_firmware < 5.21\(aasz.3\)c0 cpe:2.3:o:zyxel:nas520_firmware:*:*:*:*:*:*:*:*
zyxel nas540_firmware < 5.21\(aatb.4\)c0 cpe:2.3:o:zyxel:nas540_firmware:*:*:*:*:*:*:*:*
zyxel nas542_firmware < 5.21\(abag.4\)c0 cpe:2.3:o:zyxel:nas542_firmware:*:*:*:*:*:*:*:*
zyxel atp100_firmware >= 4.35, < 4.35\(abps.3\)c0 cpe:2.3:o:zyxel:atp100_firmware:*:*:*:*:*:*:*:*
zyxel atp200_firmware >= 4.35, < 4.35\(abfw.3\)c0 cpe:2.3:o:zyxel:atp200_firmware:*:*:*:*:*:*:*:*
zyxel atp500_firmware >= 4.35, < 4.35\(abfu.3\)c0 cpe:2.3:o:zyxel:atp500_firmware:*:*:*:*:*:*:*:*
zyxel atp800_firmware >= 4.35, < 4.35\(abiq.3\)c0 cpe:2.3:o:zyxel:atp800_firmware:*:*:*:*:*:*:*:*
zyxel usg20-vpn_firmware >= 4.35, < 4.35\(abaq.3\)c0 cpe:2.3:o:zyxel:usg20-vpn_firmware:*:*:*:*:*:*:*:*
zyxel usg20w-vpn_firmware >= 4.35, < 4.35\(abar.3\)c0 cpe:2.3:o:zyxel:usg20w-vpn_firmware:*:*:*:*:*:*:*:*
zyxel usg40_firmware >= 4.35, < 4.35\(aala.3\)c0 cpe:2.3:o:zyxel:usg40_firmware:*:*:*:*:*:*:*:*
zyxel usg40w_firmware >= 4.35, < 4.35\(aalb.3\)c0 cpe:2.3:o:zyxel:usg40w_firmware:*:*:*:*:*:*:*:*
zyxel usg60_firmware >= 4.35, < 4.35\(aaky.3\)c0 cpe:2.3:o:zyxel:usg60_firmware:*:*:*:*:*:*:*:*
zyxel usg60w_firmware >= 4.35, < 4.35\(aakz.3\)c0 cpe:2.3:o:zyxel:usg60w_firmware:*:*:*:*:*:*:*:*
zyxel usg110_firmware >= 4.35, < 4.35\(aaph.3\)c0 cpe:2.3:o:zyxel:usg110_firmware:*:*:*:*:*:*:*:*
zyxel usg210_firmware >= 4.35, < 4.35\(aapi.3\)c0 cpe:2.3:o:zyxel:usg210_firmware:*:*:*:*:*:*:*:*
zyxel usg310_firmware >= 4.35, < 4.35\(aapj.3\)c0 cpe:2.3:o:zyxel:usg310_firmware:*:*:*:*:*:*:*:*
zyxel usg1100_firmware >= 4.35, < 4.35\(aapk.3\)c0 cpe:2.3:o:zyxel:usg1100_firmware:*:*:*:*:*:*:*:*
zyxel usg1900_firmware >= 4.35, < 4.35\(aapl.3\)c0 cpe:2.3:o:zyxel:usg1900_firmware:*:*:*:*:*:*:*:*
zyxel usg2200_firmware >= 4.35, < 4.35\(abae.3\)c0 cpe:2.3:o:zyxel:usg2200_firmware:*:*:*:*:*:*:*:*
zyxel vpn50_firmware >= 4.35, < 4.35\(abhl.3\)c0 cpe:2.3:o:zyxel:vpn50_firmware:*:*:*:*:*:*:*:*
zyxel vpn100_firmware >= 4.35, < 4.35\(abfv.3\)c0 cpe:2.3:o:zyxel:vpn100_firmware:*:*:*:*:*:*:*:*
zyxel vpn300_firmware >= 4.35, < 4.35\(abfc.3\)c0 cpe:2.3:o:zyxel:vpn300_firmware:*:*:*:*:*:*:*:*
zyxel vpn1000_firmware >= 4.35, < 4.35\(abip.3\)c0 cpe:2.3:o:zyxel:vpn1000_firmware:*:*:*:*:*:*:*:*
zyxel zywall110_firmware >= 4.35, < 4.35\(aaaa.3\)c0 cpe:2.3:o:zyxel:zywall110_firmware:*:*:*:*:*:*:*:*
zyxel zywall310_firmware >= 4.35, < 4.35\(aaab.3\)c0 cpe:2.3:o:zyxel:zywall310_firmware:*:*:*:*:*:*:*:*
zyxel zywall1100_firmware >= 4.35, < 4.35\(aaac.3\)c0 cpe:2.3:o:zyxel:zywall1100_firmware:*:*:*:*:*:*:*:*

References for CVE-2020-9054

cvelogic Threat Intelligence