9.0 CRITICAL
- CVSS version (CVSS): 4.0
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Attack Requirement (AT): Present (P)
- Privileges Required (PR): Low (L)
- User Interaction (UI): None (N)
- Vulnerable System Impact Confidentiality (VC): High (H)
- Vulnerable System Impact Integrity (VI): High (H)
- Vulnerable System Impact Availability (VA): High (H)
- Subsequent System Impact Confidentiality (SC): High (H)
- Subsequent System Impact Integrity (SI): High (H)
- Subsequent System Impact Availability (SA): High (H)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Attack Requirement (MAT): Present (P)
- Modified Privileges Required (MPR): Low (L)
- Modified User Interaction (MUI): None (N)
- Modified Vulnerable System Impact Confidentiality (MVC): High (H)
- Modified Vulnerable System Impact Integrity (MVI): High (H)
- Modified Vulnerable System Impact Availability (MVA): High (H)
- Modified Subsequent System Impact Confidentiality (MSC): High (H)
- Modified Subsequent System Impact Integrity (MSI): High (H)
- Modified Subsequent System Impact Availability (MSA): High (H)
- Safety (S): Not Defined (X)
- Automatable (AU): Not Defined (X)
- Recovery (R): Not Defined (X)
- Value Density (V): Not Defined (X)
- Vulnerability Response Effort (RE): Not Defined (X)
- Provider Urgency (U): Not Defined (X)
- Confidentiality Req. (CR): Not Defined (X)
- Integrity Req. (IR): Not Defined (X)
- Availability Req. (AR): Not Defined (X)
- Exploit Maturity (E): Not Defined (X)
Activity log
- Created suggestion
Woodpecker: Privilege escalation via unrestricted serviceAccountName in the Kubernetes backend
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.
References
-
https://github.com/woodpecker-ci/woodpecker/pull/6792 x_refsource_MISC
-
https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.16.0 x_refsource_MISC
Affected products
- ==>= 1.0.0, < 3.16.0
Matching in nixpkgs
pkgs.woodpecker-cli
Command line client for the Woodpecker Continuous Integration server
pkgs.woodpecker-agent
Woodpecker Continuous Integration agent
pkgs.woodpecker-server
Woodpecker Continuous Integration server
pkgs.woodpecker-plugin-git
Woodpecker plugin for cloning Git repositories
pkgs.woodpecker-pipeline-transform
Utility to convert different pipelines to Woodpecker CI pipelines
Package maintainers
-
@marcusramberg Marcus Ramberg <marcus@means.no>
-
@techknowlogick techknowlogick <techknowlogick@gitea.com>
-
@ambroisie Bruno BELANYI <bruno.nixpkgs@belanyi.fr>
-
@luftmensch-luftmensch Valentino Bocchetti <valentinobocchetti59@gmail.com>