Update module github.com/tektoncd/pipeline to v1.11.0 [SECURITY] (main)#3201
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
Update module github.com/tektoncd/pipeline to v1.11.0 [SECURITY] (main)#3201renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
Contributor
Author
ℹ️ Artifact update noticeFile name: acceptance/go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
File name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
38311a7 to
cbf8b3a
Compare
cbf8b3a to
0f86846
Compare
Contributor
Author
|
0f86846 to
ab72bfd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.9.2→v1.11.0Tekton Pipelines has VerificationPolicy regex pattern bypass via substring matching
CVE-2026-25542 / GHSA-rmx9-2pp3-xhcr
More information
Details
Summary
The Trusted Resources verification system matches a resource source string (
refSource.URI) againstspec.resources[].patternusing Go'sregexp.MatchString. In Go,regexp.MatchStringreports a match if the pattern matches anywhere in the input string. As a result, common unanchored patterns—including examples found in Tekton documentation—can be bypassed by attacker-controlled source strings that contain the trusted pattern as a substring. This may cause an unintended policy match and alter which verification mode or keys are applied.Affected Component
0133513db03dadb3cb08301d6b0330badcb63830pkg/trustedresources/verify.go:118–137(getMatchedPolicies)Impact
An attacker can craft a Trusted Resources source string that embeds a trusted substring and still matches an unanchored
VerificationPolicyspec.resources[].pattern, even if the policy is intended to constrain matches to a specific trusted source. This occurs becauseregexp.MatchStringsucceeds on substring matches. For example, a pattern such ashttps://github.com/tektoncd/catalog.gitwould match an attacker-controlled source likehttps://evil.com/?x=https://github.com/tektoncd/catalog.git.Affected: Deployments using Trusted Resources verification with unanchored
VerificationPolicypatterns, where an attacker can influence therefSource.URIvalue used for policy matching.Not affected: Deployments that anchor all patterns (
^...$) or otherwise enforce full-string matching; deployments where attackers cannot influencerefSource.URI.Reproduction
Canonical (Demonstrates Vulnerability)
[CALLSITE_HIT]+[PROOF_MARKER]Negative Control
bash ./run.sh control | tee /tmp/tekton-regex-001-control.log[CALLSITE_HIT]+[NC_MARKER]Verification
Suggested Fix
It is recommended to make matching safe-by-default by requiring full-string matches, or by validating patterns and clearly documenting substring semantics. Possible approaches include:
patternas^(?:pattern)$when not already anchored.A fix is considered accepted when, under the same harness, the canonical test still hits
[CALLSITE_HIT]but does not emit[PROOF_MARKER].Workarounds
Anchor all
VerificationPolicyresource patterns so they must match the full source string. For example:Proof Bundle
poc-F-TEKTON-REGEX-001/) to avoid collisions.canonical.log,control.log,witness.txt./poc/poc-F-TEKTON-REGEX-001/canonical.log,./poc/poc-F-TEKTON-REGEX-001/control.log,./poc/poc-F-TEKTON-REGEX-001/witness.txtshasum -a 256forcanonical.log,control.log,fix.patch, and test source againstwitness.txt.Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
tektoncd/pipeline (github.com/tektoncd/pipeline)
v1.11.0: Tekton Pipeline release v1.11.0 "Javanese Jocasta"Compare Source
🎉 🐱 TaskRun pending parity, multiple Git credentials, and PVC auto-cleanup 🤖 🎉
-Docs @ v1.11.0
-Examples @ v1.11.0
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677ae7cc1db0d04d478cc74a86ca458747f1ca41fe102d4ec5f14a6f8ec59c48facdObtain the attestation:
Verify that all container images in the attestation are in the release file:
Changes
Features
Bump knative.dev/pkg to enable centralized WEBHOOK_* TLS configuration for the webhook (min/max version, cipher suites, curves).
Webhook now inherits TLS policy from environment (operator/cluster); defaults remain TLS 1.3 when unset.
dd multi-URL support and per-resolution url parameter to Hub Resolver, enabling ordered fallback across multiple hub instances and explicit URL targeting per resolution request.
TaskRun now supports spec.status: TaskRunPending to defer execution.
When pending, no Pod is created and status.startTime is not set.
Clearing spec.status starts execution, or setting TaskRunCancelled cancels without running.
Add optional PVC auto-cleanup for workspaces mode via
tekton.dev/auto-cleanup-pvc: "true"annotation. When set on a PipelineRun usingcoschedule: workspaces, PVCs created fromvolumeClaimTemplateworkspaces are automatically deleted on completion. User-providedpersistentVolumeClaimworkspaces are never affected.Fixes
Fixed SSH credential matching to support multiple repositories on the same host with different SSH keys. Previously, when using multiple SSH auth secrets for different repositories on the same Git server (e.g., github.com/org/repo1 and github.com/org/repo2), SSH would use the first key for all repositories, causing authentication failures with deploy keys. SSH Host aliases and Git
url.*.insteadOfrewriting now enable per-repository SSH key selection when the secret annotation URL includes a repo path.ix entrypoint step-init to handle container restarts gracefully. Previously, if a container restarted within a pod (e.g. due to OOM or eviction), the init process would fail with "symlink: file exists" because symlinks from the previous run persisted on the shared volume.
eplace silent "default" namespace fallback in GetNameAndNamespace with an explicit error, preventing potential ResolutionRequest creation in wrong namespace.
ix context key collision in resolution framework where RequestName() silently returned the namespace value, and fix nil pointer panic in ownerRefsAreEqual when both Controller fields are nil.
ix cluster resolver namespace access control: trim whitespace in allowed/blocked namespace lists, fix wildcard (*) handling when combined with explicit entries, and reject empty default-namespace values.
ction required: The
tekton_pipelines_controller_taskruns_pod_latency_millisecondsmetric has been converted from a Gauge to a Histogram and thepodlabel has been removed. Dashboards or alerts referencing this metric will need to be updated to usehistogram_quantile()instead of direct value queries.ix credential volume name collisions when namespaces have many (118+)
annotated secrets. Volume names now use deterministic SHA-256 hashing
instead of truncation with random suffix.
Fixed overcounting in the
running_taskrunsmetric forTaskRuns with no condition set yet.When
spec.timeouts.tasksorspec.timeouts.finallyon a PipelineRun exceeds the global default timeout, the value is now propagated to individual child TaskRuns that do not have an explicit per-task timeout. This prevents TaskRuns from being prematurely canceled at the global default (e.g., 1h) when the PipelineRun allows a longer duration.Fix resolver cache race condition causing duplicate upstream pulls under concurrent load.
Fixed Git credential matching to support multiple repositories on the same host with different credentials. Previously, when using multiple secrets for different repositories on the same Git server (e.g., github.com/org/repo1 and github.com/org/repo2), it incorrectly use the first credential for all repositories, causing authentication failures. Git credential contexts now include
useHttpPath = true, enabling proper per-repository credential selection.Misc
🔨 perf(pipelinerun): hoist VerificationPolicy list out of per-task loop in resolvePipelineState (#9601)
🔨 ci: fix GitHub Actions security issues found by zizmor (#9667)
🔨 Extract memberOfLookup from createChildResourceLabels to reduce nested loop (#9596)
🔨 cleanup: replace GCS release URLs with infra.tekton.dev (#9569)
🔨 fix: Upgrade Gitea test infrastructure from v1.17.1 to latest (#9568)
🔨 chore: bump knative.dev/pkg to main and k8s libs to 0.35.1 (#9470)
🔨 Update stale comment about storing TaskSpec in status (#9661)
🔨 build(deps): bump the all group in /tekton with 4 updates (#9652)
🔨 build(deps): bump github/codeql-action from 4.33.0 to 4.34.1 (#9651)
🔨 build(deps): bump actions/cache from 5.0.3 to 5.0.4 (#9650)
🔨 build(deps): bump chainguard-dev/actions from 1.6.8 to 1.6.9 (#9649)
🔨 build(deps): bump github.com/spiffe/spire-api-sdk from 1.14.3 to 1.14.4 (#9648)
🔨 build(deps): bump k8s.io/apimachinery from 0.35.2 to 0.35.3 (#9639)
🔨 build(deps): bump k8s.io/client-go from 0.35.2 to 0.35.3 (#9638)
🔨 build(deps): bump k8s.io/api from 0.34.5 to 0.34.6 in /test/custom-task-ctrls/wait-task-beta (#9637)
🔨 build(deps): bump k8s.io/client-go from 0.34.5 to 0.34.6 in /test/custom-task-ctrls/wait-task-beta (#9634)
🔨 build(deps): bump github.com/spiffe/spire-api-sdk from 1.14.1 to 1.14.3 (#9629)
🔨 build(deps): bump google.golang.org/grpc from 1.79.2 to 1.79.3 (#9628)
🔨 build(deps): bump github.com/google/go-containerregistry from 0.21.2 to 0.21.3 (#9627)
🔨 build(deps): bump github.com/tektoncd/pipeline from 1.10.0 to 1.10.2 in /test/custom-task-ctrls/wait-task-beta (#9626)
🔨 build(deps): bump golang.org/x/sync from 0.19.0 to 0.20.0 (#9611)
🔨 build(deps): bump the all group in /tekton with 4 updates (#9587)
🔨 build(deps): bump github/codeql-action from 4.32.6 to 4.33.0 (#9586)
🔨 build(deps): bump fgrosse/go-coverage-report from 1.2.0 to 1.3.0 (#9585)
🔨 build(deps): bump step-security/harden-runner from 2.15.1 to 2.16.0 (#9584)
🔨 build(deps): bump chainguard-dev/actions from 1.6.7 to 1.6.8 (#9583)
🔨 Remove opencensus dependency from test files (#9553)
🔨 Update tj-actions/changed-files version comment to v47.0.5 (#9552)
🔨 build(deps): bump go.opentelemetry.io/otel/trace from 1.41.0 to 1.42.0 (#9549)
🔨 build(deps): bump github.com/google/go-containerregistry from 0.21.1 to 0.21.2 (#9548)
🔨 build(deps): bump google.golang.org/grpc from 1.79.1 to 1.79.2 (#9547)
🔨 build(deps): bump step-security/harden-runner from 2.15.0 to 2.15.1 (#9542)
🔨 build(deps): bump the all group in /tekton with 4 updates (#9541)
🔨 build(deps): bump tj-actions/changed-files from 47.0.4 to 47.0.5 (#9540)
🔨 build(deps): bump chainguard-dev/actions from 1.6.5 to 1.6.7 (#9539)
🔨 build(deps): bump github/codeql-action from 4.32.5 to 4.32.6 (#9538)
🔨 build(deps): bump actions/dependency-review-action from 4.8.3 to 4.9.0 (#9536)
🔨 Nominate khrm and aThorp96 as pipeline approvers (#9519)
🔨 Move inactive approvers to alumni (#9518)
🔨 build(deps): bump k8s.io/apiextensions-apiserver from 0.35.1 to 0.35.2 (#9487)
🔨 build(deps): bump the all group in /tekton with 4 updates (#9483)
🔨 build(deps): bump github/codeql-action from 4.32.4 to 4.32.5 (#9482)
🔨 build(deps): bump step-security/harden-runner from 2.14.2 to 2.15.0 (#9481)
🔨 build(deps): bump actions/setup-go from 6.2.0 to 6.3.0 (#9480)
🔨 build(deps): bump chainguard-dev/actions from 1.6.4 to 1.6.5 (#9479)
🔨 build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 (#9478)
🔨 build(deps): bump go.opentelemetry.io/otel/metric from 1.40.0 to 1.41.0 (#9477)
🔨 build(deps): bump k8s.io/apimachinery from 0.35.1 to 0.35.2 (#9476)
🔨 build(deps): bump k8s.io/client-go from 0.34.3 to 0.34.5 in /test/custom-task-ctrls/wait-task-beta (#9475)
🔨 build(deps): bump k8s.io/code-generator from 0.35.1 to 0.35.2 (#9473)
🔨 build(deps): bump k8s.io/api from 0.34.3 to 0.34.5 in /test/custom-task-ctrls/wait-task-beta (#9472)
🔨 build(deps): bump k8s.io/apiextensions-apiserver from 0.34.3 to 0.34.5 (#9455)
🔨 build(deps): bump github.com/tektoncd/pipeline from 1.9.1 to 1.10.0 in /test/custom-task-ctrls/wait-task-beta (#9453)
🔨 build(deps): bump k8s.io/client-go from 0.34.3 to 0.34.4 (#9447)
🔨 build(deps): bump go.opentelemetry.io/otel/trace from 1.39.0 to 1.40.0 (#9445)
🔨 fix: release cheat sheet doc typos (#9415)
Docs
Update the pipeline API published at https://tekton.dev/docs/pipelines/pipeline-api/
Clean up stale TODO in auth.md
Added auth doc scope to distinguish credentials for processes inside Steps from Kubernetes imagePullSecrets for pulling Step images.
Thanks
Thanks to these contributors who contributed to v1.11.0!
Extra shout-out for awesome release notes:
v1.10.2: Tekton Pipeline release v1.10.2 "LaPerm Little Helper"Compare Source
-Docs @ v1.10.2
-Examples @ v1.10.2
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a104b9492904b91b09e714ee02dae9637eee78dfd892d6ca7cab46ce0208fd387Obtain 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.10.2!
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.3: Tekton Pipeline release v1.9.3 "Devon Rex Dreadnought"Compare Source
-Docs @ v1.9.3
-Examples @ v1.9.3
Installation one-liner
Attestation
The Rekor UUID for this release is
108e9186e8c5677a7943c77b03fff46f83c0876773ae3dcc84e6dcb29d64ca605afb3cbc0ff77ecbObtain the attestation:
Verify that all container images in the attestation are in the release file:
Changes
GHSA-wjxp-xrpv-xpff / CVE-2026-40161 (HIGH): Git resolver API mode leaks system-configured API token to user-controlled
serverURL. A user who can create TaskRuns can exfiltrate the system Git API token by pointing the resolver at an attacker-controlled server.GHSA-94jr-7pqp-xhcq / CVE-2026-40938 (HIGH): Git resolver unsanitized revision parameter enables argument injection. A malicious
revisionvalue can inject arbitrary flags into thegitCLI, potentially leading to remote code execution on the resolver pod.GHSA-rx35-6rhx-7858 / CVE-2026-40923 (Medium): VolumeMount path restriction bypass via missing filepath normalization. Paths like
/tekton/../sensitivebypass the/tekton/prefix restriction check.GHSA-rmx9-2pp3-xhcr / CVE-2026-25542 (Medium): VerificationPolicy regex pattern bypass via substring matching. Unanchored patterns allow partial matches, letting unsigned resources pass verification.
GHSA-m2cx-gpqf-qf74 / CVE-2026-40924 (Medium): HTTP resolver unbounded response body read enables OOM denial of service. A malicious URL returning a very large response can exhaust the resolver pod's memory. Response body is now limited to 1 MiB.
Fixes
running_taskrunsmetric overcounting TaskRuns with no conditionTextParserstruct usage for prometheus/common v0.62.0 compatibilityConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.