CVE-2026-40923 Overview
CVE-2026-40923 is a Path Traversal vulnerability affecting Tekton Pipelines, a Kubernetes-style resource framework for declaring CI/CD-style pipelines. Prior to version 1.11.1, a validation bypass in the VolumeMount path restriction allows attackers to mount volumes under restricted /tekton/ internal paths by leveraging .. path traversal components.
The vulnerability stems from improper input validation where the restriction check uses strings.HasPrefix without calling filepath.Clean first, allowing malicious paths to bypass security controls while still resolving to restricted directories at runtime.
Critical Impact
Attackers with low-privilege access can bypass VolumeMount path restrictions to access or modify sensitive Tekton internal directories, potentially compromising CI/CD pipeline integrity and confidentiality.
Affected Products
- Tekton Pipelines versions prior to 1.11.1
- Kubernetes environments running vulnerable Tekton Pipeline deployments
- CI/CD infrastructure utilizing Tekton for pipeline orchestration
Discovery Timeline
- 2026-04-21 - CVE-2026-40923 published to NVD
- 2026-04-22 - Last updated in NVD database
Technical Details for CVE-2026-40923
Vulnerability Analysis
This vulnerability is classified under CWE-22 (Improper Limitation of a Pathname to a Restricted Directory), commonly known as Path Traversal. The core issue lies in how Tekton Pipelines validates VolumeMount paths before allowing volume mounting operations.
The validation mechanism is designed to prevent mounting volumes under the /tekton/ directory tree, which contains sensitive internal resources such as pipeline results, credentials, and execution state. However, the implementation fails to normalize paths before performing the prefix check, creating a significant security gap.
When a user supplies a path like /tekton/home/../results, the strings.HasPrefix function checks if the path starts with a restricted prefix. Since /tekton/home/ appears to be a non-restricted subdirectory, the validation passes. However, at runtime, the operating system resolves the .. component, and the actual mount destination becomes /tekton/results — a restricted internal path.
This validation bypass could allow attackers with the ability to create or modify pipeline definitions to access or manipulate sensitive Tekton internal directories, potentially leading to information disclosure or integrity compromise of CI/CD operations.
Root Cause
The root cause is the use of strings.HasPrefix for path validation without prior path canonicalization via filepath.Clean. This allows path traversal sequences (..) to bypass the intended directory restrictions. The validation logic incorrectly assumes that user-supplied paths are already normalized, creating a Time-of-Check Time-of-Use (TOCTOU) vulnerability where the checked path differs from the resolved path.
Attack Vector
The attack vector is network-based, requiring authenticated access to the Tekton Pipelines API. An attacker with low privileges (the ability to define or modify pipeline tasks) can craft a VolumeMount specification with path traversal components. The attack requires no user interaction and can be executed remotely against any Kubernetes cluster running a vulnerable Tekton Pipelines installation.
A malicious VolumeMount path such as /tekton/home/../results or /tekton/workspace/../creds would pass the prefix validation but resolve to restricted directories at runtime, allowing unauthorized access to sensitive pipeline internals.
Detection Methods for CVE-2026-40923
Indicators of Compromise
- VolumeMount specifications containing .. path traversal sequences targeting /tekton/ paths
- Pipeline definitions with unusual volume mounts attempting to access internal Tekton directories
- Unexpected file access or modifications within /tekton/results, /tekton/creds, or similar protected paths
- Audit logs showing volume mount requests with non-canonical paths that resolve to restricted locations
Detection Strategies
- Implement Kubernetes admission controllers to validate and canonicalize VolumeMount paths before accepting pipeline definitions
- Configure audit logging to capture all VolumeMount operations and flag paths containing .. sequences
- Deploy runtime security monitoring to detect unexpected file access patterns within Tekton internal directories
- Use policy engines like OPA/Gatekeeper to enforce path normalization requirements on pipeline resources
Monitoring Recommendations
- Enable Kubernetes audit logging for Tekton CRD operations (Tasks, TaskRuns, Pipelines, PipelineRuns)
- Monitor for VolumeMount definitions with path patterns matching */tekton/*/../*
- Alert on any access attempts to /tekton/results, /tekton/creds, or /tekton/run from user-defined volumes
- Implement file integrity monitoring on Tekton internal directories within pipeline pods
How to Mitigate CVE-2026-40923
Immediate Actions Required
- Upgrade Tekton Pipelines to version 1.11.1 or later immediately
- Audit existing pipeline definitions for VolumeMount paths containing .. traversal sequences
- Implement admission control policies to reject pipeline definitions with non-canonical VolumeMount paths
- Review and restrict RBAC permissions for pipeline definition creation and modification
Patch Information
The vulnerability is fixed in Tekton Pipelines version 1.11.1. The patch implements proper path canonicalization using filepath.Clean before performing the restricted path prefix check, ensuring that path traversal sequences are resolved before validation.
For detailed information about the fix, refer to the GitHub Tekton Release v1.11.1 and the GitHub Security Advisory GHSA-rx35-6rhx-7858.
Workarounds
- Deploy Kubernetes admission controllers or OPA policies to validate and reject VolumeMount paths containing .. components
- Restrict pipeline creation and modification permissions to trusted administrators only
- Implement network segmentation to limit access to the Tekton API from untrusted networks
- Use runtime security tools to monitor and block unexpected access to /tekton/ internal directories
# Example OPA policy to block path traversal in VolumeMounts
# Add to your Gatekeeper ConstraintTemplate
package tekton.volumemount.pathtraversal
violation[{"msg": msg}] {
input.review.object.kind == "TaskRun"
volume_mount := input.review.object.spec.taskSpec.steps[_].volumeMounts[_]
contains(volume_mount.mountPath, "..")
msg := sprintf("VolumeMount path contains path traversal sequence: %v", [volume_mount.mountPath])
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

