CVE-2026-66877 json
Gitea fork workflow approval bypass through concurrency cancellation
published 2026-10-14 25 d ago modified 2026-10-15 25 d ago also EUVD-2026-101089
- cvss
- 8.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 37%
- public exploits
- 0
- none known
Summary
Gitea enforces first-time fork contributor approval by blocking jobs, but some job transition and dispatch paths do not re-check the run's approval requirement. A separate run sharing a job-level concurrency group can cancel a pending job and cause its blocked sibling jobs to be re-emitted and dispatched without approval. This allows unreviewed workflow code to execute on self-hosted runners; fork secrets remain withheld and the run token remains read-only.
Patch / fix
- github.com/go-gitea/gitea#39005 pull request
- github.com/go-gitea/gitea#39018 pull request
- github.com/go-gitea/gitea/releases/tag/v1.27.3 release
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 26 d ago
Exploit prediction
0.43% chance of exploitation in the next 30 days, higher than 37% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
| CNA | 3.1 | 8.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N |
Affected products
- Gitea Gitea
Classification
- Weakness
-
- CWE-284 Improper Access Control
References
-
github.com
/go-gitea/gitea/pull/39005
patch
-
github.com
/go-gitea/gitea/pull/39018
patch
-
github.com
/go-gitea/gitea/security/advisories/GHSA-v2w8-m4gr-qj65
vendor-advisory
-
blog.gitea.com
/release-of-1.27.3/
release-notes
-
github.com
/go-gitea/gitea/releases/tag/v1.27.3
release-notes
Sources
- CVE List CVE-2026-66877
- NVD CVE-2026-66877
Fencer Vulns 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.