{"id":"GHSA-rx35-6rhx-7858","revision":"9ce81f08d1e541b6bbf8cce7f971733e","records":[{"revision":"9ce81f08d1e541b6bbf8cce7f971733e","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GHSA-rx35-6rhx-7858","aliases":["CVE-2026-40923","GO-2026-5643"],"title":"Tekton Pipelines: VolumeMount path restriction bypass via missing filepath.Clean in /tekton/ check","description":"### Summary\n\nA validation bypass in the VolumeMount path restriction allows mounting\nvolumes under restricted `/tekton/` internal paths by using `..` path\ntraversal components. The restriction check uses `strings.HasPrefix`\nwithout `filepath.Clean`, so a path like `/tekton/home/../results`\npasses validation but resolves to `/tekton/results` at runtime.\n\n### Details\n\nTekton Pipelines restricts VolumeMount paths under `/tekton/` (except\n`/tekton/home`) to prevent users from interfering with internal\nexecution state. The validation at\n`pkg/apis/pipeline/v1/container_validation.go` checks mount paths using\n`strings.HasPrefix` without normalizing the path first:\n\n```go\nif strings.HasPrefix(vm.MountPath, \"/tekton/\") &&\n    !strings.HasPrefix(vm.MountPath, \"/tekton/home\") {\n    // reject\n}\n```\n\nBecause `/tekton/home` is an allowed prefix, a path like\n`/tekton/home/../results` passes both checks. At runtime, the container\nruntime resolves `..` and the actual mount point becomes\n`/tekton/results`.\n\nThe same pattern exists in `pkg/apis/pipeline/v1beta1/task_validation.go`.\n\n### Impact\n\nAn authenticated user with Task or TaskRun creation permissions can\nmount volumes over internal Tekton paths, potentially:\n\n- Writing fake task results that downstream pipelines trust\n- Reading or modifying step scripts before execution\n- Interfering with entrypoint coordination state\n\n### Patches\n\n_(to be filled: fixed in versions X.Y.Z)_\n\n### Workarounds\n\n- Use admission controllers (OPA/Gatekeeper, Kyverno) to validate that\n  VolumeMount paths do not contain `..` components.\n- In multi-tenant setups, restrict who can create Task and TaskRun\n  resources via RBAC.\n\n### Affected Versions\n\nAll versions through **v1.10.0** (both `v1` and `v1beta1` APIs).\n\n### Acknowledgments\n\nThis vulnerability was reported by @kodareef5.","state":0,"publishedAt":"2026-04-21T20:26:41+00:00","modifiedAt":"2026-09-10T03:51:03.0144675+00:00","affected":[{"ecosystem":"Go","name":"github.com/tektoncd/pipeline","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.10.0"},{"kind":"fixed","version":"1.11.1"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/tektoncd/pipeline","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.7.0"},{"kind":"fixed","version":"1.9.3"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/tektoncd/pipeline","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.4.0"},{"kind":"fixed","version":"1.6.2"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/tektoncd/pipeline","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.2.0"},{"kind":"fixed","version":"1.3.4"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/tektoncd/pipeline","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"1.0.0"},{"kind":"fixed","version":"1.0.2"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"MODERATE"}],"references":["https://github.com/tektoncd/pipeline/security/advisories/GHSA-rx35-6rhx-7858","https://nvd.nist.gov/vuln/detail/CVE-2026-40923","https://github.com/tektoncd/pipeline","https://github.com/tektoncd/pipeline/releases/tag/v1.11.1"],"sourceUrl":"https://github.com/advisories/GHSA-rx35-6rhx-7858","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-rx35-6rhx-7858","identifiers":["GHSA-rx35-6rhx-7858","CVE-2026-40923","GO-2026-5643"]},"retained":false,"historicalAffected":[]}],"coverage":[]}