OS command injection in Zyxel NAS326
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-78.
Summary
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
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Active
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Zyxel | NAS326 | V5.21(AAZF.7)C0 – V5.21(AAZF.7)C0 | — | No fix listed | CNA |
| Zyxel | NAS520 | V5.21(AASZ.3)C0 – V5.21(AASZ.3)C0 | — | No fix listed | CNA |
| Zyxel | NAS540 | V5.21(AATB.4)C0 – V5.21(AATB.4)C0 | — | No fix listed | CNA |
| Zyxel | NAS542 | V5.21(ABAG.4)C0 – V5.21(ABAG.4)C0 | — | No fix listed | CNA |
| Zyxel | NSA210 | all | — | No fix listed | CNA |
| Zyxel | NSA220 | all | — | No fix listed | CNA |
| Zyxel | NSA220+ | all | — | No fix listed | CNA |
| Zyxel | NSA221 | all | — | No fix listed | CNA |
| Zyxel | NSA310 | V4.75(AALH.2)C0 – V4.75(AALH.2)C0 | — | No fix listed | CNA |
| Zyxel | NSA320 | all | — | No fix listed | CNA |
| Zyxel | NSA320S | V4.75(AANV.2)C0 – V4.75(AANV.2)C0 | — | No fix listed | CNA |
| Zyxel | NSA325 | V4.81(AAAJ.1)C0 – V4.81(AAAJ.1)C0 | — | No fix listed | CNA |
| Zyxel | NSA325v2 | V4.81(AALS.1)C0 – V4.81(AALS.1)C0 | — | No fix listed | CNA |
- NAS326 VendorZyxel Affected V5.21(AAZF.7)C0 – V5.21(AAZF.7)C0 Fixed in — No fix listed CNA
- NAS520 VendorZyxel Affected V5.21(AASZ.3)C0 – V5.21(AASZ.3)C0 Fixed in — No fix listed CNA
- NAS540 VendorZyxel Affected V5.21(AATB.4)C0 – V5.21(AATB.4)C0 Fixed in — No fix listed CNA
- NAS542 VendorZyxel Affected V5.21(ABAG.4)C0 – V5.21(ABAG.4)C0 Fixed in — No fix listed CNA
- NSA210 VendorZyxel Affected all Fixed in — No fix listed CNA
- NSA220 VendorZyxel Affected all Fixed in — No fix listed CNA
- NSA220+ VendorZyxel Affected all Fixed in — No fix listed CNA
- NSA221 VendorZyxel Affected all Fixed in — No fix listed CNA
- NSA310 VendorZyxel Affected V4.75(AALH.2)C0 – V4.75(AALH.2)C0 Fixed in — No fix listed CNA
- NSA320 VendorZyxel Affected all Fixed in — No fix listed CNA
- NSA320S VendorZyxel Affected V4.75(AANV.2)C0 – V4.75(AANV.2)C0 Fixed in — No fix listed CNA
- NSA325 VendorZyxel Affected V4.81(AAAJ.1)C0 – V4.81(AAAJ.1)C0 Fixed in — No fix listed CNA
- NSA325v2 VendorZyxel Affected V4.81(AALS.1)C0 – V4.81(AALS.1)C0 Fixed in — No fix listed CNA
CPE configurations NVD · 54
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:zyxel:nas326_firmware:*:*:*:*:*:*:*:* | before 5.21\(aazf.10\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:nas326:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:nas520_firmware:*:*:*:*:*:*:*:* | before 5.21\(aasz.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:nas520:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:nas540_firmware:*:*:*:*:*:*:*:* | before 5.21\(aatb.7\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:nas540:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:nas542_firmware:*:*:*:*:*:*:*:* | before 5.21\(abag.7\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:nas542:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:atp100_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abps.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:atp100:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
- cpe:2.3:o:zyxel:nas326_firmware:*:*:*:*:*:*:*:* Versions before 5.21\(aazf.10\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:nas326:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:nas520_firmware:*:*:*:*:*:*:*:* Versions before 5.21\(aasz.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:nas520:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:nas540_firmware:*:*:*:*:*:*:*:* Versions before 5.21\(aatb.7\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:nas540:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:nas542_firmware:*:*:*:*:*:*:*:* Versions before 5.21\(abag.7\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:nas542:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:atp100_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abps.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:atp100:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
Show 44 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:zyxel:atp200_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abfw.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:atp200:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:atp500_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abfu.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:atp500:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:atp800_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abiq.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:atp800:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg20-vpn_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abaq.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg20-vpn:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg20w-vpn_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abar.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg20w-vpn:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg40_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aala.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg40:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg40w_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aalb.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg40w:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg60_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aaky.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg60:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg60w_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aakz.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg60w:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg110_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aaph.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg110:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg210_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aapi.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg210:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg310_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aapj.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg310:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg1100_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aapk.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg1100:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg1900_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aapl.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg1900:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:usg2200_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abae.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:usg2200:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:vpn50_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abhl.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:vpn50:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:vpn100_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abfv.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:vpn100:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:vpn300_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abfc.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:vpn300:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:vpn1000_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(abip.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:vpn1000:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:zywall110_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aaaa.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:zywall110:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:zywall310_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aaab.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:zywall310:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
| cpe:2.3:o:zyxel:zywall1100_firmware:*:*:*:*:*:*:*:* | 4.35 to before 4.35\(aaac.3\)c0 | Vulnerable | Zyxel |
| cpe:2.3:h:zyxel:zywall1100:-:*:*:*:*:*:*:* | not specified by NVD | Running on | Zyxel |
- cpe:2.3:o:zyxel:atp200_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abfw.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:atp200:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:atp500_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abfu.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:atp500:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:atp800_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abiq.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:atp800:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg20-vpn_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abaq.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg20-vpn:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg20w-vpn_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abar.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg20w-vpn:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg40_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aala.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg40:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg40w_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aalb.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg40w:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg60_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aaky.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg60:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg60w_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aakz.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg60w:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg110_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aaph.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg110:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg210_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aapi.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg210:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg310_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aapj.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg310:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg1100_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aapk.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg1100:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg1900_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aapl.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg1900:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:usg2200_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abae.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:usg2200:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:vpn50_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abhl.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:vpn50:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:vpn100_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abfv.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:vpn100:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:vpn300_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abfc.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:vpn300:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:vpn1000_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(abip.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:vpn1000:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:zywall110_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aaaa.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:zywall110:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:zywall310_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aaab.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:zywall310:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
- cpe:2.3:o:zyxel:zywall1100_firmware:*:*:*:*:*:*:*:* Versions 4.35 to before 4.35\(aaac.3\)c0 Vulnerable ·Zyxel
- cpe:2.3:h:zyxel:zywall1100:-:*:*:*:*:*:*:* Versions not specified by NVD Running on ·Zyxel
Remediation
No fixed version listed by the sources yet.
Timeline
- 2022-03-25 Added to CISA KEV
- 2026-10-02 Threatist record created from CVE-2020-9054
- 2026-10-03 Alias added: GHSA-w6h5-rjp3-hxvc
References
More Zyxel Atp100 Firmware vulnerabilities
- TI-2023-16198 Buffer overflow in Zyxel ATP series firmware KEVCVSS 3.1CRITICAL 9.8
- TI-2023-16197 Buffer overflow in Zyxel ATP series firmware KEVCVSS 3.1CRITICAL 9.8
- TI-2023-13281 OS command injection in Zyxel ZyWALL/USG series firmware KEVCVSS 3.1CRITICAL 9.8
- TI-2022-12682 OS command injection in Zyxel USG FLEX 100 firmware KEVCVSS 3.1CRITICAL 9.8
- TI-2020-17772 Firmware version 4.60 of Zyxel USG devices contains an undocumented account (zyfwp) with… KEVCVSS 3.1CRITICAL 9.8
- TI-2022-00268 Improper authentication in Zyxel USG/ZyWALL series firmware CVSS 3.1CRITICAL 9.8
Sources
- CVE-2020-9054 · CVE Program
- CVE-2020-9054 · NVD
- CISA Known Exploited Vulnerabilities
- FIRST EPSS
- GHSA-w6h5-rjp3-hxvc · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences