Zyxel VMG3625-T50B Authenticated Command Injection to Root SSH Access (CVE-2026-1459)
by Toouch67 · 2026-07-05
- Severity
- High
- CVE
- CVE-2026-1459
- Category
- network
- Affected product
- Zyxel VMG3625-T50B (and similar) router firmware
- Affected versions
- Firmware V5.50(ABPM.9.7)C0 or earlier
- Disclosed
- 2026-07-05
- Patch status
- unpatched
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-04 |
| Author / Researcher | Toouch67 |
| CVE / Advisory | CVE-2026-1459 |
| Category | network |
| Severity | High |
| CVSS Score | Not specified in source |
| Status | PoC |
| Tags | zyxel, router, firmware, command-injection, cgi-bin, ssh, authenticated, iot |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | Zyxel VMG3625-T50B (and similar) router firmware |
| Versions Affected | Firmware V5.50(ABPM.9.7)C0 or earlier |
| Language / Platform | Python 3 PoC against the router’s HTTPS/CGI management interface |
| Authentication Required | Yes (valid admin credentials) |
| Network Access Required | Yes |
Summary
The router’s web management interface exposes a TR369Certificates CGI endpoint whose name parameter, used during a certificate “download” action, is passed unsanitized into a shell command executed as root. An authenticated administrator (or attacker with stolen admin credentials) can log in through the router’s RSA/AES-encrypted authentication flow to obtain a session key, then send a crafted name parameter containing shell metacharacters that set the device’s root account password via chpasswd. Once this runs, the attacker can SSH into the router as root using the newly set password; the change is only temporary and is reverted on the next reboot.
Vulnerability Details
Root Cause
The TR369Certificates?action=download&name=<value> CGI handler concatenates the name parameter into a shell command without sanitization or escaping, allowing shell metacharacters (;) to inject arbitrary commands that execute with root privileges.
Attack Vector
- Attacker obtains valid administrator credentials for the router’s web management interface.
- Attacker performs the router’s RSA-encrypted login flow (
getRSAPublickKey+ AES-wrappedUserLogin) to establish an authenticated session and CSRF/session token. - Attacker sends a GET request to
/cgi-bin/TR369Certificates?action=download&name=x;echo root:<password>|chpasswd;using the obtained session token as the CSRF header. - The unsanitized
namevalue is executed in a root shell context, setting the root account’s password to the attacker-chosen value. - Attacker connects via SSH as
rootusing the new password to obtain a full root shell on the device (reset on next reboot).
Impact
An already-authenticated admin-level attacker can escalate to a persistent (until reboot) root shell over SSH, achieving full control of the router’s underlying Linux system.
Environment / Lab Setup
Target: Zyxel VMG3625-T50B (or similar) running firmware <= V5.50(ABPM.9.7)C0
Attacker: Python 3, pycryptodome, requests
Proof of Concept
PoC Script
See
CVE-2026-1459-shell.pyin this folder.
| |
The script logs in with the supplied admin credentials via the router’s encrypted login flow, then sends the crafted TR369Certificates request that sets the root account’s SSH password to new_ssh_password, after which the attacker can SSH in as root.
Detection & Indicators of Compromise
Signs of compromise:
- Web server/access logs showing
TR369Certificatesrequests withnameparameters containing;,|, orchpasswd. - Unexpected root SSH logins to the router shortly after an admin web session.
- Root account password changes not corresponding to any admin UI password-change action.
Remediation
| Action | Detail |
|---|---|
| Primary fix | No vendor patch confirmed as of 2026-07-05 — monitor for advisory; upgrade firmware beyond V5.50(ABPM.9.7)C0 once available. |
| Interim mitigation | Disable remote/WAN management access, restrict admin web UI to trusted networks, and rotate admin credentials regularly. |
References
Notes
Mirrored from https://github.com/Toouch67/CVE-2026-1459-POC on 2026-07-05.
| |