{"id":"CVE-2026-104626","state":"PUBLISHED","title":"Gitea fork workflow job revival through later approval","description":"A user who can open a fork pull request can place workflow content with a shared run-level concurrency group into a Gitea Actions run that is awaiting approval. When a later run in that group cancels the blocked job, the run becomes terminal while still marked as needing approval. If a maintainer later approves the run, Gitea passed the already-cancelled job back through concurrency preparation, set it to waiting, and made it claimable by a matching runner, executing fork-controlled workflow code. Exploitation requires the maintainer's later approval action, Actions to be enabled, and a runner that accepts the repository's jobs.","publishedAt":"2026-10-06T19:23:03.330Z","updatedAt":"2026-10-07T20:19:46.339Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"CISA-ADP"},"assigner":"Gitea","products":["Gitea Gitea"],"affected":[{"vendor":"Gitea","product":"Gitea","packageName":"gitea.dev","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"1.27.3","versionType":"semver"}]}],"references":["https://github.com/go-gitea/gitea/security/advisories/GHSA-93pj-3x56-5gc2","https://github.com/go-gitea/gitea/pull/39399","https://blog.gitea.com/release-of-28.0.0/","https://github.com/go-gitea/gitea/releases/tag/v28.0.0"],"weaknesses":["CWE-841"],"ingestedAt":"2026-10-29T20:10:23.711Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/104xxx/CVE-2026-104626.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-104626","state":"PUBLISHED","datePublished":"2026-10-06T19:23:03.330Z","dateUpdated":"2026-10-07T20:19:46.339Z","assignerShortName":"Gitea","assignerOrgId":"88ee5874-cf24-4952-aea0-31affedb7ff2","dateReserved":"2026-10-04T21:57:35.546Z"},"containers":{"cna":{"title":"Gitea fork workflow job revival through later approval","descriptions":[{"lang":"en","value":"A user who can open a fork pull request can place workflow content with a shared run-level concurrency group into a Gitea Actions run that is awaiting approval. When a later run in that group cancels the blocked job, the run becomes terminal while still marked as needing approval. If a maintainer later approves the run, Gitea passed the already-cancelled job back through concurrency preparation, set it to waiting, and made it claimable by a matching runner, executing fork-controlled workflow code. Exploitation requires the maintainer's later approval action, Actions to be enabled, and a runner that accepts the repository's jobs."}],"affected":[{"vendor":"Gitea","product":"Gitea","packageName":"gitea.dev","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThanOrEqual":"1.27.3","versionType":"semver"}]}],"references":[{"url":"https://github.com/go-gitea/gitea/security/advisories/GHSA-93pj-3x56-5gc2","name":"GitHub Security Advisory GHSA-93pj-3x56-5gc2","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"]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-841","lang":"en","type":"CWE","description":"CWE-841: Improper Enforcement of Behavioral Workflow"}]}],"providerMetadata":{"shortName":"Gitea","orgId":"88ee5874-cf24-4952-aea0-31affedb7ff2","dateUpdated":"2026-10-06T19:23:03.330Z"},"credits":[{"lang":"en","value":"https://github.com/opensec-intelligence","type":"tool"},{"lang":"en","value":"https://github.com/mayank-jangid-moon","type":"reporter"},{"lang":"en","value":"https://github.com/Kushalkhemka","type":"reporter"},{"lang":"en","value":"https://github.com/skigeek16","type":"reporter"},{"lang":"en","value":"https://github.com/nithissh7","type":"reporter"},{"lang":"en","value":"https://github.com/kewmine","type":"reporter"},{"lang":"en","value":"https://github.com/bircni","type":"remediation developer"},{"lang":"en","value":"https://github.com/silverwind","type":"remediation developer"}]},"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":{"timestamp":"2026-10-07T20:19:04.289390Z","id":"CVE-2026-104626","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-07T20:19:46.339Z"}}]}}}