Gitea userinfo leaks private organizations to public-only tokens
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Information disclosure, Security bypass
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA. Impact type from CWE-200 and CWE-863.
Summary
Gitea from 1.23.0 before 28.3.0 is affected. The OAuth2 userinfo endpoint checks the Authorization header instead of the scope of the authenticating token when it limits the groups claim to public organizations (CWE-863). A remote attacker with low privileges who sends a public-only token as a query parameter or form field, or uses a public-only personal access token, can read the token owner's private organization and team names and concealed memberships (CWE-200). No repository content is exposed.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
The OAuth2 userinfo endpoint (`/login/oauth/userinfo`) decided whether to limit the `groups` claim to public organizations by re-parsing the `Authorization` header as an OAuth2 access token instead of using the scope of the credential that authenticated the request. When a public-only OAuth2 token was sent as a query parameter or form field, or a public-only personal access token was used, that scope came back empty and the claim listed the token owner's private organizations, teams and concealed memberships. The disclosure is limited to the owner's organization and team names and memberships; no repository content is exposed. The endpoint now uses the scope of the authenticating token.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
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 or later, which uses the scope of the authenticating token.
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-83594 Gitea public-only token bypass exposes private repository jobsPriority MEDIUM 47
Timeline
- 2026-11-01 Threatist record created from CVE-2026-118394
- 2026-11-06 CVSS score added · CISA ADP
- 2026-11-06 CISA SSVC decision points changed
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
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences