CVE-2026-58370
HighCVSS 8.1Exploitation Probability (EPSS)
Elevated risk54th percentile - higher than 54% of all known CVEs
Summary
A vulnerability in Woodpecker before version 3.15.0 allows bypassing the ApprovalAllowedUsers list by manipulating the pipeline.Author field. For the GitLab forge driver, pipeline.Author is populated from the git commit author name (commit.author.name) in the webhook payload, which is attacker-controlled and not verified by GitLab. A user opening a merge request from a fork can set the commit author name to match an entry in ApprovalAllowedUsers, causing needsApproval to return false and the pipeline to run without required approval.
Risk Assessment
The risk involves breaking the fork-approval security boundary, allowing execution of attacker-controlled pipeline steps on a Woodpecker agent and exfiltration of CI secrets exposed during the run. This could lead to unauthorized access to sensitive data and resources.
Recommendation
Immediately upgrade Woodpecker to version 3.15.0 or later. For GitLab forks, additionally consider verifying the commit author identity on the forge side.
Other vulnerabilities in Woodpecker
See all- CVE-2026-61549Critical
Woodpecker, a CI/CD engine, from 1.0.0 until 3.16.0 allows any user with Push permission on a connected repository to run pipeline pods under an arbitrary ServiceAccount in the pipeline namespace without administrator authorization. This enables inheriting that account's RBAC permissions and potentially taking over the cluster. The issue is fixed in version 3.16.0.
- CVE-2026-58369Medium
Woodpecker before version 3.15.0 exposes the /api/orgs/lookup/*org_full_name endpoint without authentication middleware, and the LookupOrg handler unconditionally dereferences the session user (user.ForgeID via ForgeFromUser) when selecting the forge to query. For an unauthenticated request, session.User returns nil, causing a NULL pointer dereference and panic. The panic is recovered by gin recovery middleware and the server continues serving (returning HTTP 500), but each request writes a multi-line panic stack trace to the error log.
Original NVD description (English source)
Woodpecker before 3.15.0 matches the ApprovalAllowedUsers bypass list against pipeline.Author. For the GitLab forge driver, pipeline.Author is populated from the git commit author name (commit.author.name) carried in the webhook payload, which is attacker-controlled and not verified by GitLab. A user who can open a merge request from a fork can set the commit author name to match an entry in ApprovalAllowedUsers, causing needsApproval to return false so the pipeline runs without the required approval. This defeats the fork-approval security boundary and allows execution of attacker-controlled pipeline steps on a Woodpecker agent and exfiltration of CI secrets exposed to the run. Other built-in forge drivers (Gitea, Forgejo, GitHub, Bitbucket) derive pipeline.Author from the forge-validated sender/actor identity and are not affected.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

