Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessFork target GitLab project
-
DeliveryCraft commit with spoofed author.name matching allowlist
-
ExploitOpen merge request from fork
-
ExecutionApprovalAllowedUsers match makes needsApproval false
-
PersistPipeline auto-runs on agent
-
ImpactExecute attacker-controlled steps and exfiltrate CI secrets
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Anti-spoofing controls
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the target Woodpecker server to use the GitLab forge driver AND to have the fork-approval allowlist (ApprovalAllowedUsers) populated with at least one trusted entry; the attacker must be able to open a merge request from a fork (possible to anyone on public/open GitLab projects) and must know or guess one allowlisted author name to place in the spoofed commit.author.name. Limiting factors that reduce real-world exposure: instances on Gitea, Forgejo, GitHub, or Bitbucket are not vulnerable at all; instances that do not use ApprovalAllowedUsers have nothing to bypass; and exploitation value depends on secrets actually being exposed to fork-triggered runs. No additional authentication on Woodpecker itself is needed (PR:N), and no user interaction by a victim is required. |
| Impact | Signals are mixed but lean toward a genuine, high-impact issue for the affected deployment subset. The CVSS 4.0 base score is 9.2 (Critical) with AV:N/AC:H/AT:P/PR:N/UI:N and full VC:H/VI:H/VA:H, reflecting remote, unauthenticated abuse leading to code execution and secret disclosure; AC:H and AT:P acknowledge that exploitation depends on a specific configuration (GitLab forge plus a populated ApprovalAllowedUsers list) and on the attacker meeting a presence requirement (ability to open a fork MR). No EPSS score, no CISA KEV listing, and no public proof-of-concept were provided, so there is no evidence of active or widespread exploitation - the elevated score is driven by impact and ease of spoofing, not by observed attacks. The practical risk is concentrated: organizations running Woodpecker against GitLab with fork approvals enabled face a real and easily triggered bypass, while GitHub/Gitea/Forgejo/Bitbucket users are not exposed at all. Treat as a priority patch for GitLab-backed instances; lower urgency elsewhere. |
| Exploit ScenarioDerived | An attacker forks a public GitLab project that is built by a Woodpecker instance using fork approvals, then crafts a commit whose author name (commit.author.name) matches a trusted entry in ApprovalAllowedUsers and opens a merge request. Woodpecker's needsApproval check returns false, so the attacker's pipeline runs automatically on an agent, executing arbitrary steps and reading any CI secrets exposed to the job. No public PoC is published, but the spoof requires only standard git tooling and knowledge of one allowlisted name. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv3 – Jun 30, 2026
Approval-gate bypass in Woodpecker CI before 3.15.0 lets an attacker who can open a merge request from a fork against a GitLab-backed repository run unapproved, attacker-controlled pipelines. Because the GitLab forge driver populates pipeline.Author from the spoofable git commit author name (commit.author.name) rather than the GitLab-validated user identity, an attacker simply sets the commit author to a name listed in ApprovalAllowedUsers, making needsApproval return false. This grants arbitrary CI step execution on a Woodpecker agent and exposure of CI secrets; there is no public exploit identified at time of analysis, but the issue was reported by VulnCheck and is trivially reproducible.
Earlier versions of this analysis (2)
Approval-gate bypass in Woodpecker CI before 3.15.0 lets an external contributor run un-approved pipelines when the instance uses the GitLab forge driver. Because GitLab webhook payloads carry an attacker-controlled git commit author name (commit.author.name) that GitLab does not verify, an attacker who can open a merge request from a fork can spoof that name to match an entry in ApprovalAllowedUsers, making needsApproval return false and executing arbitrary pipeline steps on a Woodpecker agent with access to CI secrets. There is no public exploit identified at time of analysis and it is not listed in CISA KEV, but a vendor patch (v3.15.0) and detailed VulnCheck advisory exist.
Approval-gate bypass in Woodpecker CI before 3.15.0 lets an external contributor using the GitLab forge driver run unapproved fork pipelines by spoofing the git commit author name. Because the ApprovalAllowedUsers check is matched against pipeline.Author - derived from the unverified, attacker-controlled commit.author.name in the GitLab webhook - anyone who can open a merge request from a fork can impersonate a trusted user, causing needsApproval to return false and executing arbitrary pipeline steps with access to CI secrets. No public exploit identified at time of analysis, and the issue is GitLab-specific; Gitea, Forgejo, GitHub, and Bitbucket drivers are unaffected.
RemediationAI
Vendor-released patch: upgrade Woodpecker CI to v3.15.0 or later (https://github.com/woodpecker-ci/woodpecker/releases/tag/v3.15.0), which derives pipeline.Author from the GitLab-validated user (hook.User.Username) instead of the spoofable commit author name. If you cannot upgrade immediately and run a GitLab-backed instance, consider these compensating controls: temporarily empty or remove the ApprovalAllowedUsers list so every fork pipeline requires manual approval (trade-off: more manual approval overhead for trusted contributors); disable automatic pipeline execution for merge requests originating from forks (trade-off: slower feedback for legitimate external contributors); and scope down or rotate CI secrets so that fork-triggered runs cannot reach sensitive credentials (trade-off: some pipelines that legitimately need those secrets will fail until access is re-granted). Validate the fix and details against the VulnCheck advisory (https://www.vulncheck.com/advisories/woodpecker-gitlab-approval-gate-bypass-via-spoofable-commit-author-name).
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Woodpecker CI is a lightweight, self-hosted, container-based continuous integration engine (cpe:2.3:a:woodpecker-ci:woodpecker) that pulls work from forge webhooks. The flaw is a CWE-290 Authentication Bypass by Spoofing: the fork-approval security boundary compares trusted-author membership (ApprovalAllowedUsers) against pipeline.Author. In server/forge/gitlab/convert.go the merge-request handler set pipeline.Author = author.Name, deriving identity from commit.author.name carried in the GitLab MergeEvent webhook. GitLab does not verify the git commit author name against the authenticated actor, so it is fully attacker-controlled. The fix (PR #6653, commit 98faae77) replaces this with the forge-validated hook.User.Username / hook.UserUsername for merge, push and tag events. Per the advisory and the description, the Gitea, Forgejo, GitHub and Bitbucket drivers already derived the author from the validated sender/actor and were never affected; only the GitLab driver is.
Know when Woodpecker gets its next vulnerability
- 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
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Remote and unauthenticated against Woodpecker (PR:N/UI:N), but AC:H because it needs the GitLab driver, a populated ApprovalAllowedUsers list, and a known allowlisted name; full C/I/A from RCE on the agent and secret theft.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
5DescriptionCVE.org
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.
Articles & Coverage 1
Executive ViewAI
Woodpecker CI versions before 3.15.0 with GitLab integration contain a critical approval-gate bypass that allows attackers to run unauthorized CI pipelines and access CI secrets. Organizations using this configuration can have their continuous integration pipelines compromised by threat actors who can fork repositories, enabling arbitrary code execution within their infrastructure. Immediate patching is required to prevent unauthorized pipeline execution and credential exposure.
Apply vendor patch: Woodpecker CI 3.15.0 or later
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Woodpecker
View allWoodpecker is a simple yet powerful CI/CD engine with great extensibility. Rated high severity (CVSS 8.8), this vulnerab
Woodpecker is a simple yet powerful CI/CD engine with great extensibility. Rated high severity (CVSS 8.8), this vulnerab
Woodpecker is a community fork of the Drone CI system. Rated high severity (CVSS 8.1), this vulnerability is remotely ex
Unauthenticated NULL pointer dereference in Woodpecker CI before 3.15.0 allows any network attacker to flood server logs
Woodpecker before 0.15.1 allows XSS via build logs because web/src/components/repo/build/BuildLog.vue lacks escaping. Ra
EUVD-2026-40358
GHSA-wpx4-jm4h-w8j6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB