CVE-2026-61549 json
Woodpecker: Privilege escalation via unrestricted serviceAccountName in the Kubernetes backend
published 3mo ago modified last mo. also EUVD-2026-78774 , GHSA-qf34-295c-26v8 , GO-2026-5992
- cvss
- 9.0
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 20%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- go go.woodpecker-ci.org/woodpecker/v3 3.16.0
- woodpecker-ci woodpecker 3.16.0
- govulncheck-vulndb openSUSE Leap 16.0 0.0.20260723T184607-160000.1.1
opensuse advisories openSUSE-SU-2026:21483-1
Is CVE-2026-61549 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- last mo.
Exploit prediction
0.28% chance of exploitation in the next 30 days, higher than 20% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 9.0 | 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 |
| CNA | 4.0 | 9.0 | 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 |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | go.woodpecker-ci.org/woodpecker/v3 | <3.16.0 |
3.16.0 |
| go | github.com/woodpecker-ci/woodpecker | >=1.0.0, <=1.0.4 >=1.0.0 |
no fix listed |
| go | go.woodpecker-ci.org/woodpecker/v2 | <=2.8.3 all versions |
no fix listed |
| go | go.woodpecker-ci.org/woodpecker | all versions |
no fix listed |
Affected products
- woodpecker-ci woodpecker
Classification
References
-
github.com
/woodpecker-ci/woodpecker/pull/6792
web, patch
- github.com /woodpecker-ci/woodpecker/commit/5df9d52260626c074c6caafb2dc83d3bc6b53be1
- github.com /woodpecker-ci/woodpecker/commit/609ba481b5e912f59aaae8ca7bc22b44523c5e37
-
github.com
/woodpecker-ci/woodpecker/security/advisories/GHSA-qf34-295c-26v8
web, advisory
- github.com /woodpecker-ci/woodpecker/releases/tag/v3.16.0
-
github.com
/woodpecker-ci/woodpecker
package
Sources
- CVE List CVE-2026-61549
- GitHub Advisory GHSA-qf34-295c-26v8
- NVD CVE-2026-61549
- OSV GO-2026-5992
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.