CVE-2026-58443: Gitea public-only token scope bypass in pull request updates

CVE-2026-58443 · Severity: critical · CVSS 9.6 · Published 2026-07-21

Gitea is an open-source forge software package for hosting software development version control using Git. A vulnerability was discovered where security tokens restricted to public repositories could be used to modify private repositories through pull request updates. This could allow an attacker to inject code into private projects or trigger automated workflows in private environments, potentially leading to unauthorized access or data exposure.

Technologies: Gitea, code.gitea.io/gitea (Go), gitea.dev (Go). Vendors: Gitea, Go.

Quick answers

Is CVE-2026-58443 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-58443 being exploited in the wild.
How severe is CVE-2026-58443?
Critical severity, with a CVSS score of 9.6, published 21 July 2026.
Which products and versions are affected?
Gitea < 1.27.0; code.gitea.io/gitea (Go) < 1.27.0, SEMVER:introduced=0,fixed=1.27.0; gitea.dev (Go) SEMVER:introduced=0,fixed=1.27.0.
Is there a fix for CVE-2026-58443?
Yes. code.gitea.io/gitea (Go): upgrade to 1.27.0 or later; gitea.dev (Go): upgrade to 1.27.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-58443 attacked?
It is attacked over the network, in a network appliance.
Am I affected by CVE-2026-58443?
Check whether you run Gitea, code.gitea.io/gitea (Go) or gitea.dev (Go) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • code.gitea.io/gitea (Go): upgrade to 1.27.0 or later
    go get code.gitea.io/gitea@v1.27.0
  • gitea.dev (Go): upgrade to 1.27.0 or later
    go get gitea.dev@v1.27.0

Technical details

A logic flaw exists in Gitea's API where the 'public-only' restriction on access tokens is only validated against the base repository of a pull request. When the 'POST /api/v1/repos/{public-owner}/{public-repo}/pulls/{index}/update' endpoint is called, Gitea fails to re-verify the token's restrictions against the head repository if it is private. An attacker with a 'public-only' token and write permissions to a private repository can bypass the token's scope limitation to push commits into private branches. This can further be leveraged to trigger Gitea Actions workflows in the context of the private repository. The issue is fixed in version 1.27.0.

Affected products

  • Gitea Gitea < 1.27.0

Identifiers

  • CVE-2026-58443
  • GHSA-xxjv-752h-3vp2
  • GO-2026-6086

Timeline

  • 2026-07-13: disclosed
  • 2026-07-21: advisory
  • 1.27.0: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.