Description
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.
Published: 2026-10-14
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Execution of unreviewed workflow code on self-hosted runners
Action: Apply Patch
AI Analysis

Impact

Gitea normally blocks workflow jobs in a forked repository until a first‑time contributor is approved. However, in some job transition and dispatch paths the approval check is omitted. By running a second job that shares the same job‑level concurrency group, an attacker can cancel a blocked job and cause its sibling to be re‑emitted without undergoing approval. This enables unreviewed forked workflow code to run on self‑hosted runners; fork secrets are not exposed but the run token remains read‑only.

Affected Systems

The vulnerability is present in Gitea releases prior to the 1.27.3 security patch. All self‑hosted Gitea installations that allow fork workflow execution and use job‑level concurrency groups are affected until the bug is fixed in v1.27.3.

Risk and Exploitability

The CVSS score of 8.1 indicates high severity. The EPSS score of < 1% indicates a very low but non‑zero likelihood of exploitation, yet the risk remains high due to the straightforward execution path. This vulnerability falls under CWE‑284 (Least Privilege) because it bypasses the intended approval process. While KEV does not list this vulnerability and no public exploit is documented, the high CVSS and the straightforward execution path make it a significant risk for any environment that runs self‑hosted runners from forked repositories.

Generated by OpenCVE AI on October 15, 2026 at 19:37 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Gitea to version 1.27.3 or later, which includes the fix for the concurrency cancellation issue.
  • Restart the Gitea service to apply the new configuration.
  • Review and disable or restrict concurrency cancellation policies for workflows originating from forks to prevent unauthorized job cancellations.

Generated by OpenCVE AI on October 15, 2026 at 19:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 17 Oct 2026 19:45:00 +0000

Type Values Removed Values Added
First Time appeared Gitea
Gitea gitea
Vendors & Products Gitea
Gitea gitea

Wed, 14 Oct 2026 16:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-284
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 14 Oct 2026 14:45:00 +0000

Type Values Removed Values Added
Description 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.
Title Gitea fork workflow approval bypass through concurrency cancellation
References

cve-icon MITRE

Status: PUBLISHED

Assigner: Gitea

Published:

Updated: 2026-10-15T03:56:53.515Z

Reserved: 2026-08-13T16:50:58.698Z

Link: CVE-2026-66877

cve-icon Vulnrichment

Updated: 2026-10-14T15:04:12.896Z

cve-icon NVD

Status : Deferred

Published: 2026-10-14T15:17:21.863

Modified: 2026-10-15T04:18:25.113

Link: CVE-2026-66877

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T19:30:06Z

Weaknesses