CVE-2026-104632
Gitea fork workflow approval bypass through cancel and rerun
No known exploitation. EPSS puts it in the 20th percentile. A vendor fix is available.
What to do
The vendor has published a fix. Version details are below where the sources state them.
- GiteaAffected: ≤ 1.27.3Upgrade to: after 1.27.3Stated by: CVE record
Versions as the sources state them. Full version matrix after sign-in
Steps
Written by AI from the record- Check whether your organization self-hosts Gitea and has Actions enabled with runners registered.
- If so, confirm whether you accept pull requests from outside contributors (forks) — this is the main risk scenario.
- Upgrade Gitea to version 28.0.0 or later, which fixes the approval bypass.
- If you cannot upgrade immediately, review the vendor workaround advisory and restrict who has Actions write access until patched.
- After upgrading, review recent workflow runs for any unexpected cancel-then-rerun activity on fork pull requests.
What it is
From the CVE record
Gitea Actions blocks the jobs of workflow runs from first-time fork pull request contributors until a maintainer approves the run. The rerun path only required a run to be finished and built the new attempt's jobs without considering the pending approval, so when a user with Actions write access cancelled a run that was awaiting approval and then re-ran it, the new jobs were created as waiting rather than blocked while the run still recorded that approval was required. Cancelling and re-running stale fork checks is a routine action that does not involve the approval control, so where Actions is enabled and a matching runner is registered, workflow code taken from the fork pull request head could run on the repository's runners without an explicit approval.
In plain language
Written by AI from the recordA flaw in Gitea (versions before 28.0.0) lets someone with write access skip the required approval step for code submitted by outside contributors, letting untrusted code run on your build servers — if you use Gitea's Actions feature, you should update soon.
Gitea's fork pull-request approval gate (CWE-285, Improper Authorization) can be bypassed because the cancel-and-rerun path rebuilds jobs as 'waiting' without rechecking the pending-approval state, letting a user with Actions write permission execute untrusted fork PR workflow code on repository runners without maintainer sign-off.
If you're affected
- Untrusted code execution on build servers
- CI/CD pipeline compromise
- Secrets or credentials theft
- Supply chain tampering risk
Exploitation
Where each signal puts this CVE on the scale from published to confirmed exploited.
- CISA KEV
Not in the catalog. CISA has not confirmed exploitation.
- Public exploits
No public exploit or proof of concept found in the sources we track.
- EPSS
0.3% chance of exploitation activity in the next 30 days, which ranks it in the 20th percentile of scored CVEs.
Exploit Prediction Scoring System, FIRST.org. A probability, not a confirmation.
- Attention now
Rising, driven by in-the-wild reports.
Lifecycle
9 events over 16 days, from the signal feeds we watch.
- OpenVAS check added
- Patch availableworkaround available, record updated
- Record updatedrecord updated
- Publishedweakness classified, record updated
Affected products
And 1 more affected product. See all after sign-in
Technical detail
CVSS 3.1 vector
Open in the CVSS calculatorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Scored 8.8 by NVD.
How it is reached
- Attack Vector NetworkExploitable remotely over the network without any special conditions
- Attack Complexity LowNo special conditions — the attack can be reliably reproduced
- Privileges Required LowRequires basic user-level privileges
- User Interaction NoneNo user interaction needed — fully automated exploitation
Scope
- Scope UnchangedImpact is limited to the vulnerable component itself
Impact if exploited
- Confidentiality HighTotal information disclosure — all data in the component is compromised
- Integrity HighTotal loss of integrity — attacker can modify any data in the component
- Availability HighTotal denial of service — the component is completely unavailable
Weaknesses
Sources
References in the record
- github.com/go-gitea/gitea/security/advisories/GHSA-pvjf-7jrm-6w9g
- github.com/go-gitea/gitea/pull/39399
- blog.gitea.com/release-of-28.0.0/
And 1 more reference. See all after sign-in
In the news
Watch the software you run.
My Stack ranks new CVEs for your products by real-world exploitation, so the next serious one reaches you without reading every advisory.
We'll flag the next CVE, public exploit or patch for Gitea, not every advisory.
A free account adds
- The full version matrix and every affected product
- Exploit links, proofs of concept and Metasploit modules
- Email alerts for the products you watch
- The same data over REST API, MCP and CLI