Tekton Pipelines: VolumeMount path restriction bypass via missing filepath.Clean in /tekton/ check
Moderate severity
GitHub Reviewed
Published
Apr 21, 2026
in
tektoncd/pipeline
•
Updated May 22, 2026
Package
Affected versions
>= 1.10.0, < 1.11.1
>= 1.7.0, < 1.9.3
>= 1.4.0, < 1.6.2
>= 1.2.0, < 1.3.4
>= 1.0.0, < 1.0.2
Patched versions
1.11.1
1.9.3
1.6.2
1.3.4
1.0.2
Description
Published to the GitHub Advisory Database
Apr 21, 2026
Reviewed
Apr 21, 2026
Published by the National Vulnerability Database
Apr 21, 2026
Last updated
May 22, 2026
Summary
A validation bypass in the VolumeMount path restriction allows mounting
volumes under restricted
/tekton/internal paths by using..pathtraversal components. The restriction check uses
strings.HasPrefixwithout
filepath.Clean, so a path like/tekton/home/../resultspasses validation but resolves to
/tekton/resultsat runtime.Details
Tekton Pipelines restricts VolumeMount paths under
/tekton/(except/tekton/home) to prevent users from interfering with internalexecution state. The validation at
pkg/apis/pipeline/v1/container_validation.gochecks mount paths usingstrings.HasPrefixwithout normalizing the path first:Because
/tekton/homeis an allowed prefix, a path like/tekton/home/../resultspasses both checks. At runtime, the containerruntime resolves
..and the actual mount point becomes/tekton/results.The same pattern exists in
pkg/apis/pipeline/v1beta1/task_validation.go.Impact
An authenticated user with Task or TaskRun creation permissions can
mount volumes over internal Tekton paths, potentially:
Patches
(to be filled: fixed in versions X.Y.Z)
Workarounds
VolumeMount paths do not contain
..components.resources via RBAC.
Affected Versions
All versions through v1.10.0 (both
v1andv1beta1APIs).Acknowledgments
This vulnerability was reported by @kodareef5.
References