Skip to content
Heist/ feed
Back to feed
HighFix available

Gitea fork workflow approval bypass through cancel and rerun

Type: advisorySources: OSV

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.

Products
gitea
Affected versions
Not specified
Fixed versions
28.0.0
CVEs
CVE-2026-104632
Confirmed fixed CVEs
Not specified
Updated in this feed
30 Oct 2026, 12:06 UTC · Revision 1

Source evidence

Gitea fork workflow approval bypass through cancel and rerun

core-osv · Original source

Published 14 Oct 2026, 08:42 UTC

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.

osv:BIT-gitea-2026-104632

gitea

Fixed versions: 28.0.0

Complete source record
{
  "id": "a7a28082eee554ea9fae1d70440baef762da3141a7405ac952b7617b37b81e66",
  "url": "https://osv.dev/vulnerability/BIT-gitea-2026-104632",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Gitea fork workflow approval bypass through cancel and rerun",
    "summary": "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.",
    "evidence": "osv:BIT-gitea-2026-104632",
    "products": [
      {
        "name": {
          "value": "gitea",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "28.0.0",
            "evidence": "/affected/0/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "BIT-gitea-2026-104632",
      "aliases": [
        "BIT-gitea-2026-104632",
        "CVE-2026-104632",
        "GHSA-pvjf-7jrm-6w9g"
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "SEMVER",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "28.0.0"
                }
              ]
            }
          ],
          "package": {
            "name": "gitea",
            "purl": "pkg:bitnami/gitea",
            "ecosystem": "Bitnami"
          },
          "severity": [
            {
              "type": "CVSS_V3",
              "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
            }
          ],
          "database_specific": {
            "source": "https://github.com/bitnami/vulndb/tree/main/data/gitea/BIT-gitea-2026-104632.json"
          }
        }
      ],
      "modified": "2026-10-14T11:11:03.691478038Z",
      "provider": "osv",
      "references": [
        "https://blog.gitea.com/release-of-28.0.0/",
        "https://github.com/go-gitea/gitea/pull/39399",
        "https://github.com/go-gitea/gitea/releases/tag/v28.0.0",
        "https://github.com/go-gitea/gitea/security/advisories/GHSA-pvjf-7jrm-6w9g",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-104632"
      ],
      "provider_metadata": {
        "cpes": [
          "cpe:2.3:a:gitea:gitea:*:*:*:*:*:*:*:*"
        ],
        "severity": "High"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-104632",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/database_specific/severity"
  },
  "source_id": "core-osv",
  "document_id": 316246,
  "published_at": "2026-10-14T08:42:38.952+00:00"
}