OpenHands est vulnérable à une injection de commandes via son gestionnaire Git Diff
Plateforme
python
Composant
openhands
Corrigé dans
1.5.0
## Résumé Une vulnérabilité d'injection de commandes existe dans la méthode `get_git_diff()` dans `openhands/runtime/utils/git_handler.py:134`. Le paramètre `path` du point de terminaison d'API `/api/conversations/{conversation_id}/git/diff` est transmis sans être filtré à une commande shell, ce qui permet aux attaquants authentifiés d'exécuter des commandes arbitraires dans le sandbox de l'agent. L'utilisateur est déjà autorisé à demander à l'agent d'exécuter des commandes, mais cela contourne les canaux normaux. --- ## Détails ### Chemin de code vulnérable La vulnérabilité se propage à travers ces fichiers : 1. **Point de terminaison API** (`openhands/server/routes/files.py:267-277`) ```python @app.get('/git/diff') async def git_diff( path: str, # <-- Entrée utilisateur de la requête HTTP ... ): ... diff = await call_sync_from_async(runtime.get_git_diff, path, cwd) # Pas de filtrage ``` 2. **Runtime** (`openhands/runtime/base.py:1231-1233`) ```python def get_git_diff(self, file_path: str, cwd: str) -> dict[str, str]: self.git_handler.set_cwd(cwd) return self.git_handler.get_git_diff(file_path) # Transmis directement ``` 3. **Méthode vulnérable** (`openhands/runtime/utils/git_handler.py:10-12, 134`) ```python # Modèle de commande avec espace réservé
Comment corriger
Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.
Surveillez vos dépendances automatiquement
Recevez des alertes quand de nouvelles vulnérabilités affectent vos projets.
Commencer gratuitement