Gitea public-only token bypass exposes private repository jobs
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-863.
Summary
Gitea before 28.3.0 accepts personal access tokens restricted to public resources on the organization Actions runner registration-token endpoint. Runners registered with such a token are not limited to public repositories, which is an incorrect authorization flaw (CWE-863). An attacker holding only such a token with write:organization, from an owner of a public organization, can register an organization-level runner and receive jobs of private repositories, including workflow content, Actions secrets and variables, and a task token.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Gitea did not reject personal access tokens restricted to public resources (`public-only`) on the organization Actions runner registration-token endpoint, and the runner registered with the resulting token was not limited to public repositories. Holding only such a token with `write:organization` that belongs to an owner of a public organization, an attacker could register an organization-level runner and receive jobs of the organization's private repositories that have Actions enabled, including the workflow content, Actions secrets and variables, and a task token with access to the private repository. The issue widens what the restricted token can reach; it gives nothing beyond what the owner's full account can already do.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade Gitea to version 28.3.0, which fixes this issue.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA Gitea (Gitea) Fixed in 28.3.0
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
Gitea 28.3.0
20 records Highest priority Priority MEDIUM 3 MEDIUM, 17 LOW
Other records, highest priority first
- TI-2026-83610 Gitea OAuth2 auto-linking lets attackers take over accountsPriority MEDIUM 49
- TI-2026-83601 Gitea public-only token can expose private OCI blobs through package mountsPriority MEDIUM 47
- TI-2026-83607 Gitea leaks private pull request details on project boardsPriority LOW 39
Vendor assessments
Timeline
- 2026-11-01 Threatist record created from CVE-2026-116289
- 2026-11-04 Affected versions changed · Red Hat
- 2026-11-04 CVSS score added · Red Hat
- 2026-11-06 CVSS score added · CISA ADP
- 2026-11-06 CISA SSVC decision points changed
- 2026-11-06 Priority changed: LOW → MEDIUM
References
More Gitea vulnerabilities
- TI-2026-42785 Gitea before 1.27.1 allows remote code execution via the diffpatch API through Git hook installation. KEVCVSS 3.1CRITICAL 9.8
- TI-2026-42033 Improper authorization on OAuth sign-in callback silently re-enables administrator-disabled accounts CVSS 3.1CRITICAL 9.8
- TI-2026-40842 Privilege Escalation via Access Token Scope Escalation in API CVSS 3.1CRITICAL 9.8
- TI-2026-16922 Gitea Docker image trusts spoofable reverse-proxy headers by default CVSS 3.1CRITICAL 9.8
- TI-2026-42043 Team-repository linking endpoint bypasses the RepoAdminChangeTeamAccess organization setting CVSS 3.1CRITICAL 9.1
- TI-2026-40381 OIDC userinfo Endpoint Returns Identity Claims Without Enforcing API Token Scopes CVSS 3.1CRITICAL 9.1
Sources
- CVE-2026-116289 · CVE Program
- CVE-2026-116289 · NVD
- FIRST EPSS
- CVE-2026-116289 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences