fix(deps): update module github.com/tektoncd/pipeline to v1.10.1 [security] (alauda-v0.43.0) - #79
Conversation
|
alaudabot
left a comment
There was a problem hiding this comment.
Code Review
This PR correctly addresses CVE-2026-33022 (GHSA-cv4x-93xx-wgfj), a critical security vulnerability that could crash the Tekton Pipelines controller. The dependency update from v1.6.1 to v1.10.1 is appropriate.
Minor Suggestion: The Go version directive (go 1.12) may need updating for compatibility with tektoncd/pipeline v1.10.1 - please verify.
Overall, this PR is ready to merge.
🤖 AI Code Review
SummaryThis PR updates the Review Statistics
Critical Issues
(None) Warnings
(None) Suggestions
Positive Feedback
ℹ️ About this reviewThis review was automatically generated using the
|
This PR contains the following updates:
v1.6.1->v1.10.1Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Tekton Pipelines controller panic via long resolver name in TaskRun/PipelineRun
CVE-2026-33022 / GHSA-cv4x-93xx-wgfj
More information
Details
Summary
A user with permission to create or update a TaskRun or PipelineRun can crash the Tekton Pipelines controller by setting
.spec.taskRef.resolver(or.spec.pipelineRef.resolver) to a string of 31 characters or more, causing a denial of service for all reconciliation.Details
The controller panics in
GenerateDeterministicNameFromSpecwhen building a deterministicResolutionRequestname. The generated name has the format{resolver}-{hash}and, when the resolver name is long enough, the result exceeds the DNS-1123 label limit of 63 characters.The truncation logic attempts to find a word boundary using
strings.LastIndex(name, " "). Since the generated name never contains spaces (it is composed of the resolver name, a dash, and a hex-encoded hash),LastIndexreturns-1, which is then used as a slice bound:The panic crashes the controller. Because the offending TaskRun or PipelineRun is re-reconciled on restart, the controller enters a
CrashLoopBackOff, blocking all TaskRun and PipelineRun reconciliation cluster-wide until the offending resource is manually deleted.Built-in resolvers use short names (
git,cluster,bundles,hub) and are not affected under normal usage. The vulnerability is exploitable by any user who can create TaskRuns or PipelineRuns with a custom resolver name.Impact
Denial of service — A single malicious TaskRun or PipelineRun with a long resolver name is sufficient to crash the Tekton Pipelines controller into a restart loop, blocking all CI/CD reconciliation cluster-wide until the resource is removed.
Patches
(to be filled in: e.g. "Fixed in versions 1.10.1, 1.9.1, ...")
The fix computes the hash first, then truncates only the prefix (resolver name) to fit within the DNS-1123 label limit, preserving the full hash to maintain determinism and uniqueness of
ResolutionRequestnames.Workarounds
Restrict who can create TaskRun and PipelineRun resources via Kubernetes RBAC. There is no validation-side workaround without patching.
Affected Versions
All releases from v0.60.0 through v1.10.0.
The vulnerable truncation logic was introduced in commit
ea1fa7ad1fdc("Remote Resolution Refactor"), first released in v0.60.0 (2024-05-22).Currently supported affected releases:
Releases prior to v0.60.0 are not affected — the truncation code did not exist.
Acknowledgments
This vulnerability was reported by Oleh Konko (@1seal), who provided a thorough vulnerability analysis, proof-of-concept, and review of the fix. Thank you!
References
ea1fa7ad1fdc("Remote Resolution Refactor")Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
tektoncd/pipeline (github.com/tektoncd/pipeline)
v1.10.1: Tekton Pipeline release v1.10.1 "LaPerm Little Helper"Compare Source
-Docs @ v1.10.1
-Examples @ v1.10.1
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a8754062aee1bb73b992fe19d8c70544f16dd0bd502e19006c984c56928e9df4fObtain the attestation:
Verify that all container images in the attestation are in the release file:
Changes
Features
Fixes
Misc
Docs
Thanks
Thanks to these contributors who contributed to v1.10.1!
Extra shout-out for awesome release notes:
v1.10.0: Tekton Pipeline release v1.10.0 "LaPerm Little Helper"Compare Source
🎉 Observability, evolved: Tekton Pipelines migrates to OpenTelemetry 🎉
-Docs @ v1.10.0
-Examples @ v1.10.0
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a94dd58f7cfb4996ccce2c937681486ef690dab5e560e66c6c34aa9b446f32651Obtain the attestation:
Verify that all container images in the attestation are in the release file:
Upgrade Notices
🚨 Metrics migration from OpenCensus to OpenTelemetry (#9043)
ACTION REQUIRED: Infrastructure metrics (Go runtime, Workqueue, K8s Client) have been renamed from the
tekton_pipelines_controller_prefix to standard OpenTelemetry/Knative namespaces. Thereasonlabel has been added to duration metrics (pipelinerun_duration_seconds,taskrun_duration_seconds). Thereconcile_countandreconcile_latencymetrics have been removed.Upgrade actions:
config-observabilityConfigMap usesmetrics-protocol: prometheus(orgrpc/http) instead of the oldmetrics.backend-destination. If prometheus was already being used, no changes are needed.tekton_pipelines_controller_workqueue_*queries withkn_workqueue_*tekton_pipelines_controller_go_*queries with standardgo_*metricspipelinerun_duration_secondsto account for the newreasonlabelSee the full migration table in PR #9043 for complete details.
Changes
Features
✨ feat: Add SHA-256 support for Git resolver revision validation (#9278)
Git resolver now supports SHA-256 commit hashes for revision validation.
✨ feat(metrics): Migrate from OpenCensus to OpenTelemetry (#9043)
Migrated PipelineRun and TaskRun metrics to OpenTelemetry instruments (histograms, counters, gauges). Updated Knative to 1.19. See Upgrade Notices for breaking changes and required actions.
✨ ci: add /rebase slash command workflow (#9375)
Fixes
🐛 fix: Remove redundant shortNames from ResolutionRequest CRD (#9398)
Remove redundant shortNames from ResolutionRequest CRD that caused ShortNamesConflict on Kubernetes 1.33+
🐛 fix(pipelines): allow pipeline param defaults to use non-param variables (#9386)
Fixed a bug which caused PipelineRun validation to fail when a pipeline parameter's default value referenced a non-parameter variable (e.g.
$(context.pipelineRun.name))🐛 fix: pipeline-level results not recorded from failed tasks (#9367)
Pipeline-level results now include results from failed, cancelled, and timed-out tasks, fixing cases where results referencing non-successful task outputs were left as unresolved variable strings.
🐛 ci: replace e2e-only fan-in with unified CI summary job (#9394)
🐛 fix: Align cache configstore with framework implementation (#9282)
🐛 accept featureFlags.EnableTektonOCIBundles to fix unknown field error (#8996)
Misc
Docs
Thanks
Thanks to these contributors who contributed to v1.10.0!
Extra shout-out for awesome release notes:
v1.9.2: Tekton Pipeline release v1.9.2 "Devon Rex Dreadnought"Compare Source
-Docs @ v1.9.2
-Examples @ v1.9.2
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a6c7ee52741b34d7b7e9a3277e775365533a3669a49c3be92b372bcbda73ee439Obtain the attestation:
Verify that all container images in the attestation are in the release file:
Changes
GHSA-j5q5-j9gm-2w5c (Critical): Path traversal in git resolver allows reading arbitrary files from the resolver pod. Fixed by validating the
pathInRepoparameter to prevent directory traversal.GHSA-cv4x-93xx-wgfj / CVE-2026-33022 (Medium): Controller panic via long resolver name in TaskRun/PipelineRun. A user with permission to create TaskRuns or PipelineRuns could crash the controller into a restart loop by setting a resolver name of 31+ characters, causing denial of service cluster-wide. Thanks to @1seal for reporting this vulnerability.
Thanks
Thanks to these contributors who contributed to v1.9.2!
v1.9.1: Tekton Pipeline release v1.9.1 "Devon Rex Dreadnought"Compare Source
-Docs @ v1.9.1
-Examples @ v1.9.1
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a127d1213c2768a992b19df1a58983ef2336fc3ede3d6b9fdbd7e49431bdf3cc0Obtain the attestation:
Verify that all container images in the attestation are in the release file:
Changes
Features
Fixes
Misc
Docs
Thanks
Thanks to these contributors who contributed to v1.9.1!
Extra shout-out for awesome release notes:
v1.9.0: Tekton Pipeline release v1.9.0 LTS "Devon Rex Dreadnought"Compare Source
🎉
hostUserssupport and digest validation for http resolver 🎉-Docs @ v1.9.0
-Examples @ v1.9.0
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a692b1410db6e04e5e4a25aec2e361118647fe42c5ad8d7ef3e087b5cd11463d6Obtain the attestation:
Verify that all container images in the attestation are in the release file:
Changes
Features
✨ feat: add ServiceAccount inheritance to Affinity Assistants (#9253)
✨ Add hostUsers field support to PodTemplate (#9227)
✨ feat: Add digest validation support to HTTP resolver (#9171)
✨ taskrun: include actual result size in error when exceeding maxResultSize (#8869)
Fixes
🐛 fix(pipelinerun): fix the issue of massive invalid status updates caused by unordered arrays, which will greatly impact the resource load and stability of the apiserver. (#9295)
🐛 Fix parameter resolution for defaults with references (#9271)
🐛 Fix duplicated protobuf tag in pod.Template struct (#9229)
🐛 fix: Prevent excessive reconciliation when timeout disabled (#9202)
🐛 fix: Detect pod configuration errors early instead of timeout (#9197)
🐛 chore(ci): update cherry-pick workflow to fix multi-commit PRs (#9320)
🐛 fix: validate taskRef.apiVersion format for custom tasks (#9045)
🐛 test(e2e): move flaky retry/matrix tests to no-ci temporarily (#9242)
🐛 fix(e2e): improve dind-sidecar probe configuration for reliability (#9241)
Misc
2f71c4dto0cd4986in /tekton in the all group (#9264)abdd2f6toe002140(#9232)Docs
Thanks
Thanks to these contributors who contributed to v1.9.0!
Extra shout-out for awesome release notes:
v1.7.0: Tekton Pipeline release v1.7.0 "LaPerm Little Helper"Compare Source
🎉 Bug fixes, stability improvements and dependency updates 🎉
-Docs @ v1.7.0
-Examples @ v1.7.0
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a0af3ff47db2d68605b227b75af0aa40d87262257e2b9295f35454fe3d050ed38Obtain the attestation:
Verify that all container images in the attestation are in the release file:
Changes
Fixes
Fix a race condition on timeout that would result in a TaskRun status without steps statuses.
Resolved an issue where Pipelines with invalid result references in matrix parameters would cause a panic during validation (v1beta1 API)
Fixed race condition causing TaskRuns to fail with 409 conflict error when stopping sidecars.
StopSidecars now uses Patch instead of Update to avoid conflicts with concurrent kubelet pod status updates.
Misc
// +builddirective from most files (#9118)6da3c88toabdd2f6(#9196)7006987to6da3c88(#9167)0ff001dto7006987(#9132)dbf178cto0ff001d(#9122)Thanks
Thanks to these contributors who contributed to v1.7.0!
Extra shout-out for awesome release notes:
Configuration
📅 Schedule: Branch creation - "" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.