Skip to main content

Pipelines-as-Code EUVDEUVD-2026-78586

| CVE-2026-54168 MEDIUM
Improper Privilege Management (CWE-269)
2026-08-20 https://github.com/tektoncd/pipelines-as-code GHSA-6f2p-296r-cc28
6.5
CVSS 3.1 · Vendor: https://github.com/tektoncd/pipelines-as-code
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Push to accessible installation repository
  2. Delivery
    Craft PipelineRun annotation referencing private-repo task URL
  3. Exploit
    Webhook fires and PAC processes PipelineRun
  4. Execution
    PAC resolves remote task using unscoped installation token
  5. Impact
    Private Tekton task YAML contents exposed in pipeline output

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of the following: (1) Pipelines-as-Code must be configured with a GitHub App installed across multiple repositories or org-wide - single-repository installations are not vulnerable; (2) the attacker must hold push access (write permission) to at least one repository in that GitHub App installation; (3) a target private repository containing Tekton task YAML must exist within the same GitHub App installation; (4) the attacker must be able to trigger webhook processing, which occurs naturally via a Git push to the accessible repository. What limits exploitation: pure read-only access is all that is exposed - no code execution, no write capability; the attacker must already be an authorized contributor to at least one repository in the installation; the target repository must be within the same GitHub App installation boundary, not arbitrary external repositories.

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, score 6.5) accurately reflects the real-world risk profile: exploitation is network-reachable, low-complexity, and requires only push access to one repository in the installation - a meaningful but not trivial prerequisite. Impact is bounded to read-only exposure of private Tekton task YAML; no write access, code execution, or availability impact is involved. The absence of KEV listing and POC code moderates urgency somewhat, but the attack requires no special tooling beyond a crafted PipelineRun annotation and a Git push. The scope is limited to organizations running PAC with multi-repository or org-wide GitHub App installations; single-repository installations are not affected. A key risk amplifier is that private Tekton task definitions may embed secrets, credentials, or sensitive pipeline logic that the repository owner intended to restrict - meaning the confidentiality impact in practice could exceed what a generic C:H label implies. Any team using org-wide GitHub App installations for PAC, even a mid-sized development organization, should treat this as a concrete upgrade priority. No conflicting signals exist between CVSS and the description.

Exploit ScenarioDerived

An attacker with push access to a lower-trust repository (e.g., a contractor's project) in an org-wide Pipelines-as-Code GitHub App installation pushes a PipelineRun YAML containing the annotation pipelinesascode.tekton.dev/task pointing to a URL in a private, higher-trust repository within the same installation. When the webhook fires and PAC processes the PipelineRun, it fetches the referenced task YAML using the unscoped installation token and inlines it into the pipeline, exposing the private task's source - potentially including embedded secrets, API keys, or sensitive deployment logic - in PAC's resolution output or pipeline logs. No public proof-of-concept code has been identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 20, 2026

Unscoped GitHub App installation token exposure in Tekton Pipelines-as-Code (openshift-pipelines/pipelines-as-code) allows any authenticated user with push access to one repository in a multi-repo GitHub App installation to read the Tekton task definitions from other private repositories in the same installation. By crafting a PipelineRun with a remote task annotation pointing at a private repository URL, the attacker causes Pipelines-as-Code to fetch and inline that repository's task YAML using the over-privileged installation token during webhook processing, producing a read-only confidentiality breach. No public exploit or CISA KEV listing exists at time of analysis; the EPSS signal is absent from provided data, but the low-complexity attack path and confirmed fix make this a prioritization candidate for any organization running multi-repository PAC installations.

RemediationAI

Upgrade Pipelines-as-Code to one of the vendor-confirmed patched releases: v0.37.8, v0.39.6, v0.42.1, or v0.48.0 depending on the currently deployed branch; v0.48.0 is the primary upstream fix release. The advisory is available at https://github.com/tektoncd/pipelines-as-code/security/advisories/GHSA-6f2p-296r-cc28. If an immediate upgrade is not possible, the vendor-recommended workaround is to limit the GitHub App installation scope to only the specific repositories that require Pipelines-as-Code, explicitly removing any org-wide or broad installation grants. This workaround reduces the blast radius to only the explicitly selected repositories, meaning an attacker with push access to one selected repository can only reach other selected repositories - not all org repos. The trade-off is that this may require reconfiguring the GitHub App installation and could disrupt PAC's ability to process repos not individually enumerated. It does not eliminate the underlying token scoping flaw; upgrade remains the definitive fix.

Affected VersionsENISA

pipelines-as-code < 0.37.8
pipelines-as-code 0.38.0, < 0.39.6
pipelines-as-code 0.43.0, < 0.48.0
pipelines-as-code 0.40.0, < 0.42.1

Affected Packages

go github.com/openshift-pipelines/pipelines-as-code fix: 0.37.8, 0.39.6, 0.42.1, 0.48.0
euvd pipelines_as_code fix: 0.37.8, 0.39.6, 0.42.1, 0.48.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Pipelines-as-Code is a GitOps CI/CD controller (Go package: github.com/openshift-pipelines/pipelines-as-code) that integrates with Tekton PipelineRuns triggered by GitHub webhooks. It supports a remote task resolution feature whereby a PipelineRun YAML annotation (pipelinesascode.tekton.dev/task) can reference an arbitrary GitHub URL, which PAC fetches and inlines before execution. GitHub App installation tokens are scoped at issuance time to specific repositories or to the entire installation; the root cause (CWE-269: Improper Privilege Management) is that PAC was issuing an installation-wide token during webhook processing without subsequently re-scoping it to the triggering repository. The fix in v0.48.0 extracts the repository ID from the webhook payload early in parsing and re-issues the token scoped to that repository ID when ScopeTokenToListOfRepos returns empty, preserving the initial unscoped token only long enough to discover extra-repos configurations. CPE evidence confirms the Go module pkg:go/github.com_openshift-pipelines_pipelines-as-code across all affected version ranges.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/tektoncd/pipelines-as-code) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Push access (PR:L) to any installation repository is required; impact is read-only confidentiality with no integrity or availability loss.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 6.5 MEDIUM

Primary rating from Vendor (https://github.com/tektoncd/pipelines-as-code).

CVSS VectorVendor: https://github.com/tektoncd/pipelines-as-code

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionCVE.org

Impact

When Pipelines-as-Code is configured with a GitHub App installed across multiple repositories, the installation token issued during webhook processing is not scoped to the triggering repository by default. The token retains access to all repositories in the GitHub App installation.

This allows a user with push access to any repository in the installation to craft a PipelineRun with a remote task annotation pointing at a private repository in the same installation:

pipelinesascode.tekton.dev/task: "https://github.com/org/private-repo/blob/main/.tekton/secret-task.yaml"

Pipelines-as-Code resolves and inlines the remote task using the unscoped token, exposing the contents of the private repository's Tekton definitions. This is a read-only confidentiality breach, no write access is exposed.

Patches

The fix extracts the repository ID from the webhook payload during initial parsing so that it is available for later use. It then adds a fallback in the client setup path so that when no explicit scoping configuration is present and ScopeTokenToListOfRepos returns empty, the token is re-issued scoped to the triggering repository's ID rather than retaining access to the entire installation. The initial token remains unscoped so that the extra-repos lookup can still discover and resolve additional repositories when configured.

The fix is available in v0.48.0. Supported backport releases will be added here after release tags are published.

Workarounds

Limit the GitHub App installation to only the repositories that require Pipelines-as-Code. Avoid org-wide installations or mixed-trust installations where repositories with different access requirements share the same GitHub App. This restricts the blast radius of the unscoped token to only the repositories that are explicitly selected during App installation.

Credits

Reported and fixed by the Pipelines-as-Code maintainers.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
niche Tekton/OpenShift CI/CD component, not broadly deployed
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

Vendor StatusVendor

SUSE

Severity: Moderate

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy