Проект Tekton Pipelines предоставляет ресурсы в стиле k8s для объявления конвейеров в стиле CI/CD. Версии с 0.60.0 по 1.0.0, с 1.1.0 по 1.3.2, с 1.4.0 по 1.6.0, с 1.7.0 по 1.9.0, 1.10.0 и 1.10.1 имеют уязвимость типа «отказ в обслуживании», которая позволяет любому пользователю, который может создать TaskRun или PipelineRun, привести к сбою контроллера в масштабе всего кластера, установив .spec.taskRef.resolver (или .spec.pipelineRef.resolver) в строку длиной более 31 символа. Сбой происходит из-за того, что GenerateDeterministicNameFromSpec создает имя, превышающее ограничение в 63 символа метки DNS-1123, а его логика усечения вызывает панику при привязке фрагмента [-1], поскольку сгенерированное имя не содержит пробелов.
После сбоя контроллер вводит CrashLoopBackOff при перезапуске (поскольку он повторно согласовывает ресурс-нарушитель), блокируя все согласования CI/CD до тех пор, пока ресурс не будет удален вручную. Встроенные преобразователи (git, кластер, пакеты, хаб) не затрагиваются из-за их коротких имен, но любое пользовательское имя преобразователя вызывает ошибку. Исправление усекает префикс имени преобразователя вместо полной строки, сохраняя хэш-суффикс для детерминированности и уникальности.
Эта проблема исправлена в версиях 1.0.1, 1.3.3, 1.6.1, 1.9.2 и 1.10.2.
Показать оригинальное описание (EN)
Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Versions 0.60.0 through 1.0.0, 1.1.0 through 1.3.2, 1.4.0 through 1.6.0, 1.7.0 through 1.9.0, 1.10.0, and 1.10.1 have a denial-of-service vulnerability in that allows any user who can create a TaskRun or PipelineRun to crash the controller cluster-wide by setting .spec.taskRef.resolver (or .spec.pipelineRef.resolver) to a string of 31+ characters. The crash occurs because GenerateDeterministicNameFromSpec produces a name exceeding the 63-character DNS-1123 label limit, and its truncation logic panics on a [-1] slice bound since the generated name contains no spaces. Once crashed, the controller enters a CrashLoopBackOff on restart (as it re-reconciles the offending resource), blocking all CI/CD reconciliation until the resource is manually deleted. Built-in resolvers (git, cluster, bundles, hub) are unaffected due to their short names, but any custom resolver name triggers the bug. The fix truncates the resolver-name prefix instead of the full string, preserving the hash suffix for determinism and uniqueness. This issue has been patched in versions 1.0.1, 1.3.3, 1.6.1, 1.9.2 and 1.10.2.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 5
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Linuxfoundation Tekton_Pipelines
cpe:2.3:a:linuxfoundation:tekton_pipelines:*:*:*:*:*:go:*:*
|
0.60.0
|
1.0.1
|
|
Linuxfoundation Tekton_Pipelines
cpe:2.3:a:linuxfoundation:tekton_pipelines:*:*:*:*:*:go:*:*
|
1.1.0
|
1.3.3
|
|
Linuxfoundation Tekton_Pipelines
cpe:2.3:a:linuxfoundation:tekton_pipelines:*:*:*:*:*:go:*:*
|
1.4.0
|
1.6.1
|
|
Linuxfoundation Tekton_Pipelines
cpe:2.3:a:linuxfoundation:tekton_pipelines:*:*:*:*:*:go:*:*
|
1.7.0
|
1.9.2
|
|
Linuxfoundation Tekton_Pipelines
cpe:2.3:a:linuxfoundation:tekton_pipelines:*:*:*:*:*:go:*:*
|
1.10.0
|
1.10.2
|