CVE-2026-104632 (GCVE-0-2026-104632)
Vulnerability from cvelistv5
Published
2026-10-06 19:22
Modified
2026-10-07 20:21
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.
Impacted products
Vendor Product Version
Gitea Gitea Version: 0   ≤ 1.27.3
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "NETWORK",
              "availabilityImpact": "HIGH",
              "baseScore": 8.8,
              "baseSeverity": "HIGH",
              "confidentialityImpact": "HIGH",
              "integrityImpact": "HIGH",
              "privilegesRequired": "LOW",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2026-104632",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-07T20:20:48.432483Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "problemTypes": [
          {
            "descriptions": [
              {
                "cweId": "CWE-285",
                "description": "CWE-285 Improper Authorization",
                "lang": "en",
                "type": "CWE"
              }
            ]
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-07T20:21:23.687Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "packageName": "gitea.dev",
          "product": "Gitea",
          "vendor": "Gitea",
          "versions": [
            {
              "lessThanOrEqual": "1.27.3",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "reporter",
          "value": "https://github.com/DshtAnger"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "https://github.com/bircni"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "https://github.com/silverwind"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "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\u0027s 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\u0027s runners without an explicit approval."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-06T19:22:04.308Z",
        "orgId": "88ee5874-cf24-4952-aea0-31affedb7ff2",
        "shortName": "Gitea"
      },
      "references": [
        {
          "name": "GitHub Security Advisory GHSA-pvjf-7jrm-6w9g",
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://github.com/go-gitea/gitea/security/advisories/GHSA-pvjf-7jrm-6w9g"
        },
        {
          "name": "Fix: go-gitea/gitea pull request #39399",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/go-gitea/gitea/pull/39399"
        },
        {
          "name": "Gitea 28.0.0 release announcement",
          "tags": [
            "release-notes"
          ],
          "url": "https://blog.gitea.com/release-of-28.0.0/"
        },
        {
          "name": "go-gitea/gitea v28.0.0 release",
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/go-gitea/gitea/releases/tag/v28.0.0"
        }
      ],
      "title": "Gitea fork workflow approval bypass through cancel and rerun"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "88ee5874-cf24-4952-aea0-31affedb7ff2",
    "assignerShortName": "Gitea",
    "cveId": "CVE-2026-104632",
    "datePublished": "2026-10-06T19:22:04.308Z",
    "dateReserved": "2026-10-04T21:57:35.543Z",
    "dateUpdated": "2026-10-07T20:21:23.687Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 8.8, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}}, {\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-104632\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-10-07T20:20:48.432483Z\"}}}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-285\", \"description\": \"CWE-285 Improper Authorization\"}]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-10-07T20:21:17.363Z\"}}], \"cna\": {\"title\": \"Gitea fork workflow approval bypass through cancel and rerun\", \"credits\": [{\"lang\": \"en\", \"type\": \"reporter\", \"value\": \"https://github.com/DshtAnger\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"https://github.com/bircni\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"https://github.com/silverwind\"}], \"affected\": [{\"vendor\": \"Gitea\", \"product\": \"Gitea\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"1.27.3\"}], \"packageName\": \"gitea.dev\", \"defaultStatus\": \"unaffected\"}], \"references\": [{\"url\": \"https://github.com/go-gitea/gitea/security/advisories/GHSA-pvjf-7jrm-6w9g\", \"name\": \"GitHub Security Advisory GHSA-pvjf-7jrm-6w9g\", \"tags\": [\"vendor-advisory\"]}, {\"url\": \"https://github.com/go-gitea/gitea/pull/39399\", \"name\": \"Fix: go-gitea/gitea pull request #39399\", \"tags\": [\"patch\"]}, {\"url\": \"https://blog.gitea.com/release-of-28.0.0/\", \"name\": \"Gitea 28.0.0 release announcement\", \"tags\": [\"release-notes\"]}, {\"url\": \"https://github.com/go-gitea/gitea/releases/tag/v28.0.0\", \"name\": \"go-gitea/gitea v28.0.0 release\", \"tags\": [\"release-notes\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"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\u0027s 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\u0027s runners without an explicit approval.\"}], \"providerMetadata\": {\"orgId\": \"88ee5874-cf24-4952-aea0-31affedb7ff2\", \"shortName\": \"Gitea\", \"dateUpdated\": \"2026-10-06T19:22:04.308Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-104632\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-10-07T20:21:23.687Z\", \"dateReserved\": \"2026-10-04T21:57:35.543Z\", \"assignerOrgId\": \"88ee5874-cf24-4952-aea0-31affedb7ff2\", \"datePublished\": \"2026-10-06T19:22:04.308Z\", \"assignerShortName\": \"Gitea\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…