CVE-2026-25714Medium· 4.3▾ SunlitGitea: Incomplete CVE-2025-68941 fix: /user/orgs missing checkTokenPublicOnly + switch-case logic flaw
▾ Sunlit zone — Low / medium · no exploitation signal
impact 23.7 · likelihood 0.1 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Jul 4.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via GHSA
0.3%
0.3% → 0.3%
Two related issues in the token public-only scope enforcement introduced by PR #32204 (CVE-2025-68941 fix). A public-only scoped API token can access private organization data.
routers/api/v1/api.go line 1599:
m.Get("/user/orgs", reqToken(), tokenRequiresScopes(
auth_model.AccessTokenScopeCategoryUser,
auth_model.AccessTokenScopeCategoryOrganization,
), org.ListMyOrgs)
// Missing checkTokenPublicOnly()
Adjacent route at line 1603 has it:
m.Group("/users/{username}/orgs", func() { ... },
..., checkTokenPublicOnly())
routers/api/v1/api.go lines 253-295. Go switch executes only the first matching case. For routes with categories [User, Organization]:
curl -H "Authorization: token <PUBLIC_ONLY_TOKEN>" https://gitea.example.com/api/v1/user/orgsExpected: only public organizations returned.
Public-only scoped tokens can enumerate private organizations the token owner belongs to. Violates the token's declared scope constraints.
checkTokenPublicOnly() to /user/orgs route at line 1599Current main branch, commit 2c2d7e6 (April 3, 2026).
code.gitea.io/gitea <= 1.26.1Upgrade to a patched release:
code.gitea.io/gitea 1.26.2Connected by shared product, vendor, weakness, or advisory.
CVE-2026-58432Medium· 5.9Gitea: draft release attachment disclosure via missing web authorization
CVE-2026-57886Medium· 5.9Gitea: Cross-repository issue/comment attachment re-linking can expose private attachment content
CVE-2026-50105Medium· 4.3Gitea: RSS/Atom feed handlers bypass API-token scope & public-only confinement (incomplete fix of #37698)
CVE-2026-58434LowGitea: Private Repository Metadata Remains Accessible After Access Revocation
CVE-2026-27783Medium· 4.3Gitea: Missing repository-unit authorization on issue-template API endpoints
CVE-2025-68939High· 8.2Gitea allows attackers to add attachments with forbidden file extensions