IT SBIT Services
Schneeberger
DEEN
CVE tracker

Gitea: Revival of cancelled fork pull request workflow jobs through later approval

CVE-2026-104626High 8.8

← All vulnerabilities

Summary

A registered user who can open a fork pull request can place workflow content into an approval-pending Gitea Actions run and cancel the blocked job via a shared run-level concurrency group. If a maintainer later approves the run, Gitea sets the already-cancelled job back to waiting, and a matching runner executes the fork-controlled workflow code. Exploitation requires the maintainer's approval action, Actions being enabled, and a runner accepting the repository's jobs.

Affected

  • Gitea up to and including 1.27.3 (according to the CNA record; the vendor advisory names v1.26.0 as the earliest verified affected release)

Fixed in

  • Gitea 28.0.0 (according to the vendor advisory and release references)

Workaround

Unknown.

Exploitation

  • No evidence of in-the-wild exploitation found.
  • CISA SSVC: Exploitation none, Automatable no, Technical Impact total.
  • No public proof of concept found.

Our recommendation

  • Upgrade Gitea to the latest 28.x release, at least 28.0.0.
  • Until patched, limit who holds approval rights for Actions runs and review fork pull request runs before approving them.
  • Disable Actions on repositories that do not need it and restrict runners to trusted repositories.
  • Keep self-hosted runners away from sensitive internal networks and secrets, and prefer ephemeral runners.
  • Check whether your instance accepts fork pull requests from external users and whether self-hosted runners are in use.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 21:40.

Original description (NVD)

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.

NVD references (4)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.