Gitea 28.3.0 Lists 21 CVE Identifiers, Mostly Around Token Scopes, and Moves Review-Triggered Workflows to the Pull Request Head
Gitea's release post for 28.3.0 lists 21 CVE identifiers by the Herald's count, mostly around token scopes, including one where review-triggered workflows ran from a reviewer-chosen commit. Linuxiac's headline says 20.
Overview
Gitea 28.3.0, the self-hosted Git service’s third maintenance release of the 28 series, lists a long set of security fixes. According to the Gitea Blog, the release “contains a large number of security fixes, mostly around token scopes, and bug fixes and performance improvements for Actions, issues, pull requests and packages.” The post, dated November 1, 2026, adds: “We strongly recommend that all users upgrade as soon as possible.” The GitHub release page carries the changelog for 28.3.0.
How Many Fixes
The count differs by source. Linuxiac’s headline says “20 Security Fixes”, and its subtitle says the release addresses 20 security vulnerabilities. The Gitea Blog security section lists 21 distinct CVE identifiers when counted by the Herald. That tally is the Herald’s own count of the identifiers in that section, not a figure the blog states, and Linuxiac does not say how it arrived at 20.
The Gitea Blog also says the release includes 60 merged pull requests.
The Review-Triggered Workflow Flaw
One entry touches Gitea Actions. The Gitea Blog describes CVE-2026-118386 this way: a user with read access could submit a pull request review whose commit_id named their own commit, on a pull request whose head branch is in the same repository. The pull_request_review workflows were then read from that commit and ran without approval, with the repository’s secrets and a token that can write to it. The post says review-triggered workflows now run on the pull request head, fixed by pull requests #40099 and #40117, and says “Thanks to Anthropic for reporting the issue”.
Linuxiac summarizes the same item as a case where a user with read access could cause workflows to execute without approval, gaining access to repository secrets and a token with write permissions, and says the update changes how these workflows select the commit they run from. The release changelog on GitHub lists the fix as “Run review-triggered workflows on the pull request head”.
Token Scopes and Other Entries
Linuxiac says many of the fixes involve weak enforcement of access token permissions, potentially allowing restricted tokens to access private repository information or perform operations beyond their scope. Examples in the Gitea Blog include:
- CVE-2026-117635: the blog says the
public-onlytoken restriction was not applied to the admin API, so a public-only token of a site administrator could list the email addresses of all users, create private organizations and runner registration tokens, and create new administrators. - CVE-2026-119441: the blog says
DELETE /api/v1/orgs/{org}/reposdid not reject public-only tokens, so such a token of an organization owner could delete all repositories of the organization, private ones included. - CVE-2026-112887: the blog says Actions task tokens carry no token scope, so a job’s
GITEA_TOKENcould list every private repository of the instance throughGET /api/v1/user/repos. System users now own nothing.
Other entries are not about tokens. For CVE-2026-120263, the Gitea Blog says that with ACCOUNT_LINKING = auto and open registration, a user who signed in through an OAuth2 provider could enter the user name or email address of an existing account, which was then linked to the external identity and signed in without a password. Gitea now only auto-links the account that the external identity’s email or user name points to. For CVE-2026-113429, the blog says a workflow could upload a legacy Actions artifact that is rendered as HTML on the Gitea origin, a stored cross-site scripting issue. For CVE-2026-111943, it says the release binaries are now built with Go 1.27.3, which no longer trusts a set of intermediate certificates because of security concerns around the issuing certificate authority.
Performance and Bug Fixes
The release is not only security work. Linuxiac says the issue and pull request dashboards now load faster, as do repository issue and pull request lists. The Gitea Blog says an unneeded index is dropped so SQLite no longer reads nearly every job row on pages like the admin job queue, and that jobs of repositories with Actions disabled are no longer picked up by runners.
The Previous Release
Gitea 28.2.0 was released October 18, according to the Gitea Blog, and also carried security fixes. Linuxiac reports that the developers disclosed 12 vulnerabilities, nine fixed in 28.2 and three addressed in earlier releases but newly disclosed.
What the Sources Do Not Say
The Gitea Blog’s 28.3.0 post does not give severity scores for the listed CVEs, and none of the cited sources reports exploitation of any of them in the wild. The blog does not state which earlier versions each issue affects, so administrators should consult the individual entries and the release changelog before assessing exposure.