ZeroHour

CVE-2026-61549

niche

Unauthorized ServiceAccount selection in Woodpecker CI Kubernetes backend

CVSS 4.0
9.0 critical
EPSS
Published
()
Modified
AI analysis

Woodpecker CI, a self-hosted open-source CI/CD engine, does not enforce administrator authorization on the backend_options.kubernetes.serviceAccountName pipeline option: the Kubernetes backend copies this user-supplied value directly from the pipeline step into the pod specification. Any user with Push permission on a repository connected to the Woodpecker server can therefore run pipeline pods under an arbitrary ServiceAccount in the pipeline namespace and inherit that account's RBAC permissions. If a privileged ServiceAccount is reachable, an attacker can exfiltrate secrets such as database credentials, API keys, and TLS certificates and may take over the cluster. All versions from 1.0.0 until 3.16.0 that use the Kubernetes backend are affected; the flaw is fixed in 3.16.0. No public proof of concept is known, the issue is not in the CISA KEV catalog, and there is no evidence of in-the-wild exploitation.

What to do: Upgrade to Woodpecker CI 3.16.0 or later, where ServiceAccount selection requires administrator authorization. Until patched, audit RBAC in pipeline namespaces and remove or restrict any privileged ServiceAccounts reachable from them. Review pipeline histories for unexpected use of backend_options.kubernetes.serviceAccountName and rotate database credentials, API keys, and TLS certificates accessible to those accounts if misuse is found.

Affected
Woodpecker-ci Woodpecker CI (Kubernetes backend)>= 1.0.0, < 3.16.0
Estimated exposure
niche≈ low thousands of self-hosted Woodpecker servers worldwide, of which only the Kubernetes-backend subset is exploitable (clearly an estimate) — Woodpecker is a self-hosted open-source CI engine with public internet scans typically showing on the order of a few hundred to ~1,000 exposed instances, most deployments being private, and only a fraction of those running the Kubernetes…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Woodpecker is a CI/CD engine. From 1.0.0 until 3.16.0, pipeline/backend/kubernetes/backend_options.go defines backend_options.kubernetes.serviceAccountName, and the Kubernetes backend in pipeline/backend/kubernetes/pod.go copies that pipeline-step value directly into the pod specification without administrator authorization. Any user with Push permission on a connected repository can therefore run pipeline pods under an arbitrary ServiceAccount in the pipeline namespace and inherit that account's RBAC permissions. When a privileged ServiceAccount is reachable, the attacker can exfiltrate secrets such as database credentials, API keys, and TLS certificates and may take over the cluster. This issue is fixed in version 3.16.0.

Weakness
CWE-269, CWE-862
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.