CVE-2023-37928
High · 8.8CVSS
8.8
EPSS
60.2%
Published
Nov 30, 2023
CISA due date
—
Cloudanix analysis
An attacker with a valid login could make certain Zyxel network storage devices run their own commands, potentially exposing or destroying stored files.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Firmware
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2023-37928 is a post-authentication command injection vulnerability in the WSGI server component of affected Zyxel NAS326 and NAS542 firmware. An attacker who can authenticate to the NAS web interface can send a crafted URL containing command metacharacters or injected shell syntax, causing the device to execute attacker-supplied operating system commands with the privileges of the vulnerable service. Successful exploitation can lead to full compromise of the NAS, including unauthorized file access, modification or deletion of stored data, deployment of malware, creation of persistence mechanisms, and use of the device as a pivot point into the surrounding network.
Why it matters to the business
A compromised NAS can expose sensitive files, disrupt shared storage availability, enable data tampering or deletion, and provide attackers with a foothold inside the network. Because NAS devices often store backups, documents, media archives, or shared operational data, exploitation can materially affect confidentiality, business continuity, and recovery capability. The vulnerability requires valid credentials, but the low attack complexity, network reachability, and high CVSS score make exposed or weakly protected devices a significant risk, especially where NAS management interfaces are reachable from untrusted networks.
How an attack unfolds
An attacker first obtains valid credentials for a vulnerable Zyxel NAS326 or NAS542 device through password reuse, phishing, credential stuffing, default or weak passwords, or prior compromise of another account. The attacker then authenticates to the NAS web management interface and sends a specially crafted URL to the WSGI server that embeds shell control characters or command syntax in a parameter processed unsafely by the firmware. The vulnerable server passes attacker-controlled input to the operating system without proper sanitization, causing arbitrary commands to run on the NAS. The attacker may then enumerate users and files, download sensitive data, add or modify accounts, deploy scripts or binaries, establish persistence, exfiltrate archives, encrypt or delete data, or use the NAS as a staging point for lateral movement.
How to fix it
Upgrade affected Zyxel NAS326 and NAS542 firmware to a vendor-provided fixed release when available from Zyxel. The affected versions identified are NAS326 firmware V5.21(AAZF.14)C0 and NAS542 firmware V5.21(ABAG.11)C0. If an upgrade is unavailable or cannot be applied immediately, restrict access to the NAS management interface to trusted administrative networks only, disable internet exposure, place the device behind a VPN or firewall allowlist, enforce strong unique passwords and MFA where supported, remove unused accounts, disable unnecessary services, and monitor for suspicious authenticated activity. Because exploitation requires credentials, rotate NAS administrator and user passwords after patching or mitigation, especially if there is any sign of suspicious access. Review vendor advisories for model-specific firmware availability and end-of-support status; replace unsupported devices that cannot receive security updates.
How to confirm the fix worked
Confirm the running firmware version from the Zyxel NAS administrative interface or device CLI and verify it is no longer NAS326 V5.21(AAZF.14)C0 or NAS542 V5.21(ABAG.11)C0. Validate that the NAS management interface is not reachable from the public internet and is restricted to approved administrative source networks. Review firewall, reverse proxy, VPN, and NAS web access logs to confirm only expected administrative sources can reach the web interface. After remediation, perform an authenticated security test or vendor-recommended validation to ensure crafted URL parameters containing shell metacharacters are rejected or treated as data rather than executed. Confirm that all local accounts are expected, administrative passwords have been rotated, and no unknown startup scripts, scheduled jobs, binaries, or web-accessible files were added before the fix.
Typical attack path
- Identify an internet-exposed or internally reachable Zyxel NAS326 or NAS542 management interface.
- Obtain valid NAS credentials through guessing, credential reuse, phishing, default credentials, or another compromise path.
- Log in to the NAS web interface.
- Send a crafted URL to the vulnerable WSGI server containing injected operating system command syntax.
- Execute reconnaissance commands to determine firmware, users, mounted volumes, network configuration, and privileges.
- Deploy additional tools or scripts using built-in utilities such as shell, wget, curl, or busybox where available.
- Access, copy, modify, encrypt, or delete NAS-hosted data.
- Create persistence or additional access paths, then use the NAS to pivot, stage data, or maintain a foothold.
How to detect it
Investigate whether the NAS management interface received authenticated HTTP requests containing command-injection syntax such as semicolons, pipes, backticks, dollar-parentheses, URL-encoded shell metacharacters, or commands commonly used to download and execute payloads. Review Zyxel NAS web access logs, WSGI/application logs if available, system logs, authentication logs, firewall logs, reverse proxy logs, VPN logs, and network telemetry around the NAS. Focus on successful logins followed by unusual URL patterns, requests from unfamiliar source IPs, repeated probing of the same endpoint, or immediate outbound connections from the NAS to external hosts. On the device, look for unexpected local users, changed passwords, modified web or startup files, new scripts or binaries in writable locations, suspicious cron jobs or init scripts, abnormal processes spawned by the web service, unexpected archive creation, high-volume file reads, and outbound use of wget, curl, nc, telnet, ssh, or busybox. Because this flaw is post-authentication, correlate suspicious requests with account names, login times, source IP addresses, and subsequent file access or administrative changes. If logs are limited, rely on network flow records, DNS logs, firewall egress logs, and filesystem timeline analysis to identify command execution and payload retrieval after authenticated web access.
- ;wget
- ;curl
- |wget
- |curl
- `wget
- `curl
- $(wget
- $(curl
- %3Bwget
- %3Bcurl
- %7Cwget
- %7Ccurl
- %60wget
- %60curl
- %24%28wget
- %24%28curl
- /bin/sh
- /bin/bash
- busybox wget
- busybox nc
- nc -e
- /tmp/
- /var/tmp/
- chmod +x
- sh -c
- bash -c
- python -c
- perl -e
What your security team should do
- Prioritize inventory of Zyxel NAS326 and NAS542 devices and identify any running NAS326 firmware V5.21(AAZF.14)C0 or NAS542 firmware V5.21(ABAG.11)C0.
- Remove public internet exposure for NAS management interfaces immediately; require VPN, firewall allowlisting, or a dedicated management network.
- Apply Zyxel firmware updates or replace unsupported devices that cannot be updated.
- Rotate administrative and user credentials for affected NAS devices, especially where management access was exposed beyond trusted networks.
- Review NAS web access logs, authentication logs, and system logs for suspicious authenticated requests, shell metacharacters in URLs, unexpected downloads, and command execution artifacts.
- Hunt for persistence on affected devices, including unknown users, modified startup scripts, unexpected scheduled tasks, unfamiliar binaries, and outbound connections to untrusted hosts.
- Back up critical NAS data to offline or immutable storage and verify restore procedures.
- Add SIEM detections for authenticated NAS web requests containing command injection metacharacters and for outbound download or reverse-shell behavior from NAS IP addresses.
The record
A post-authentication command injection vulnerability in the WSGI server of the Zyxel NAS326 firmware version V5.21(AAZF.14)C0 and NAS542 firmware version V5.21(ABAG.11)C0 could allow an authenticated attacker to execute some operating system (OS) commands by sending a crafted URL to a vulnerable device.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-96376 Improper Neutralization of Special Elements used in an OS Command ("OS Command… CWE-78
- CVE-2026-113732 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113776 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113726 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113725 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-113722 virtualenv is a tool for creating isolated virtual python environments. CWE-78
- CVE-2026-112943 launch-editor allows users to open files with line numbers in editor from Node.js. CWE-78
- CVE-2026-112900 Pillow is a Python imaging library. CWE-78