Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. From 1.0.0 to before 1.11.0, the git resolver's revision parameter is passed directly as a positional argument to git fetch without any validation that it does not begin with a - character. Because git parses flags from mixed positional arguments, an attacker can inject arbitrary git fetch flags such as --upload-pack=<binary>. Combined with the validateRepoURL function explicitly permitting URLs that begin with / (local filesystem paths), a tenant who can submit ResolutionRequest objects can chain these two behaviors to execute an arbitrary binary on the resolver pod. The tekton-pipelines-resolvers ServiceAccount holds cluster-wide get/list/watch on all Secrets, so code execution on the resolver pod enables full cluster-wide secret exfiltration. This vulnerability is fixed in 1.11.1.
Tekton Pipelines versions 1.0.0 to 1.10.x contain a critical command injection vulnerability in the git resolver that allows authenticated attackers to execute arbitrary binaries on resolver pods. By injecting malicious git flags through unvalidated revision parameters combined with local filesystem path traversal, attackers can achieve remote code execution and exfiltrate cluster-wide secrets. This vulnerability is particularly severe for organizations using Tekton for CI/CD pipeline orchestration in Kubernetes environments.
IMMEDIATE ACTIONS:
1. Identify all Tekton Pipelines deployments in your Kubernetes clusters and document their versions
2. Restrict ResolutionRequest object creation to trusted administrators only via RBAC policies
3. Implement network segmentation to limit resolver pod outbound connectivity
4. Enable audit logging for all ResolutionRequest submissions
PATCHING GUIDANCE:
1. Upgrade Tekton Pipelines to version 1.11.1 or later immediately
2. For clusters unable to upgrade immediately, disable the git resolver if not actively used
3. If git resolver is required, implement a custom admission webhook to validate revision parameters do not start with '-' character
COMPENSATING CONTROLS:
1. Implement Pod Security Policy/Standards to restrict resolver pod capabilities (no privileged execution)
2. Use NetworkPolicy to restrict resolver pod egress to only required git repositories
3. Implement RBAC to remove get/list/watch permissions on Secrets from tekton-pipelines-resolvers ServiceAccount where possible
4. Deploy runtime security monitoring (Falco/Sysdig) to detect suspicious process execution on resolver pods
5. Implement secret rotation policies for all credentials accessible to Tekton ServiceAccounts
DETECTION RULES:
1. Monitor for ResolutionRequest objects with revision parameters containing '-' character
2. Alert on resolver pod process execution of unexpected binaries
3. Monitor for unusual git fetch command invocations with --upload-pack or similar flags
4. Track Secret access patterns from tekton-pipelines-resolvers ServiceAccount
5. Log all RBAC changes affecting tekton-pipelines-resolvers ServiceAccount permissions
الإجراءات الفورية:
1. حدد جميع نشرات Tekton Pipelines في مجموعات Kubernetes الخاصة بك وقم بتوثيق إصداراتها
2. قيد إنشاء كائنات ResolutionRequest للمسؤولين الموثوقين فقط عبر سياسات RBAC
3. تنفيذ تقسيم الشبكة لتحديد اتصال الاتصال الصادر من حاوية المحلل
4. تفعيل تسجيل التدقيق لجميع عمليات إرسال ResolutionRequest
إرشادات التصحيح:
1. ترقية Tekton Pipelines إلى الإصدار 1.11.1 أو أحدث على الفور
2. بالنسبة للمجموعات غير القادرة على الترقية فوراً، قم بتعطيل محلل git إذا لم يكن قيد الاستخدام النشط
3. إذا كان محلل git مطلوباً، قم بتنفيذ webhook قبول مخصص للتحقق من أن معاملات المراجعة لا تبدأ بحرف '-'
الضوابط التعويضية:
1. تنفيذ سياسة أمان Pod/المعايير لتقييد قدرات حاوية المحلل (لا يوجد تنفيذ مميز)
2. استخدام NetworkPolicy لتقييد خروج حاوية المحلل فقط إلى مستودعات git المطلوبة
3. تنفيذ RBAC لإزالة أذونات get/list/watch على Secrets من ServiceAccount tekton-pipelines-resolvers حيث أمكن
4. نشر مراقبة أمان وقت التشغيل (Falco/Sysdig) للكشف عن تنفيذ العملية المريبة على حاويات المحلل
5. تنفيذ سياسات تدوير الأسرار لجميع بيانات الاعتماد التي يمكن الوصول إليها بواسطة ServiceAccounts Tekton
قواعد الكشف:
1. مراقبة كائنات ResolutionRequest مع معاملات المراجعة التي تحتوي على حرف '-'
2. تنبيه عند تنفيذ عملية حاوية المحلل من ملفات ثنائية غير متوقعة
3. مراقبة استدعاءات أوامر git fetch غير العادية مع --upload-pack أو أعلام مماثلة
4. تتبع أنماط الوصول إلى Secret من ServiceAccount tekton-pipelines-resolvers
5. تسجيل جميع تغييرات RBAC التي تؤثر على أذونات ServiceAccount tekton-pipelines-resolvers