Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
PoC requires an authenticated API token (PR:L); pure information disclosure with no integrity or availability impact (I:N, A:N).
Primary rating from Vendor (https://github.com/go-gitea/gitea).
CVSS VectorVendor: https://github.com/go-gitea/gitea
Lifecycle Timeline
6DescriptionCVE.org
Summary
The endpoint "/orgs/{org}/public_members/{username}" + GET exposes organization membership of public members in a private organization.
PoC
- Spin up the nightly container of Gitea.
- Perform the default installation.
- Register a new user (let's call this user "user1").
- Create a new organization with "private" visibility. We will refer to this organization as "user1org".
- Make the user "user1" inside the organization visible.
- Log out and register a new user ("user2").
- Create an access token for "user2" with full access to the API.
- Use the endpoint "/orgs/{org}/public_members/{username}" + GET with the correct username of "user1", organization name, and access token of "user2" to query whether "user1" is a member of the organization. The following curl command demonstrates the usage:
curl -X 'GET' \ 'http://localhost:4700/api/v1/orgs/user1org/public_members/user1' \ -H 'accept: application/json' \ -H 'authorization: token <user2-token>'
- You will receive status code 204, which leaks the organization membership.
Impact
The vulnerability discloses organization membership. An information that is not accessible via the web app (the organization is hidden, and therefore, the organization membership on the user's profile page is also hidden).
AnalysisAI
Gitea's REST API leaks private organization membership through the GET /orgs/{org}/public_members/{username} endpoint, bypassing the visibility controls that correctly conceal this information in the web UI. All versions up to and including 1.26.4 are affected, permitting any user with a valid API token to confirm whether a specific user belongs to a hidden organization - data intentionally withheld from the web interface. No public exploit is confirmed in CISA KEV, though a detailed proof-of-concept with curl commands is documented in GHSA-jr5x-6h83-wrxf; EPSS stands at 0.16% (5th percentile), indicating low observed exploitation probability.
Technical ContextAI
Gitea is a self-hosted Git service written in Go (CPE: pkg:go/gitea.dev). The vulnerability originates in routers/api/v1/org/member.go, where both the ListPublicMembers and IsPublicMember API handlers were missing a call to HasOrgOrUserVisible() before processing requests. This function gates visibility of an organization based on its privacy setting and the requesting user's relationship to it. Without this check, the handlers responded to any authenticated request - returning HTTP 204 to confirm membership - regardless of whether the organization was configured as private. The web application correctly hides private organization membership on user profile pages, making this an API-layer access control gap. CWE-200 (Exposure of Sensitive Information to Unauthorized Actor) applies: the system possessed the correct logic to restrict disclosure but failed to invoke it consistently across API and web surfaces. The patch (PR #38145, commit 685b62c) adds the HasOrgOrUserVisible gate to both handlers, returning HTTP 404 rather than 204 when the requesting user lacks visibility into the organization, treating the organization's existence itself as non-disclosable.
RemediationAI
Upgrade to Gitea 1.27.0, which resolves this issue via commit 685b62c60fc595e3612a85f0895471876db56292, merged in pull request https://github.com/go-gitea/gitea/pull/38145; the release is documented at https://blog.gitea.com/gitea-1.27.0-is-released/ and the advisory at https://github.com/go-gitea/gitea/security/advisories/GHSA-jr5x-6h83-wrxf. For installations that cannot immediately upgrade, two compensating controls are available: first, block or rate-limit access to the API path pattern /api/v1/orgs/*/public_members* at a reverse proxy or WAF layer - this eliminates the leak but also disables legitimate public member lookups for all clients; second, audit every private organization and set all member visibility to hidden (non-public), ensuring no members have publicized their membership within private organizations - this removes the data the endpoint would disclose, but requires per-organization auditing and ongoing policy enforcement. Neither workaround substitutes for patching, and both carry operational trade-offs for legitimate use of the public member feature.
Remote code execution in Gitea (self-hosted Git service) via a code-injection flaw (CWE-94) allows attackers to run arbi
Broken access control in Gitea's Composer package registry (versions up to and including 1.26.1) lets remote attackers r
Gitea before 1.16.7 does not escape git fetch remote. Rated high severity (CVSS 7.5), this vulnerability is remotely exp
The git hook feature in Gitea 1.1.0 through 1.12.5 might allow for authenticated remote code execution in customer envir
Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting') vulnerability in Gitea Gitea
Reverse-proxy authentication bypass in the official Gitea Docker image (versions up to and including 1.26.2) allows any
Container escape in Gitea act_runner (Docker backend, through act 0.262.0) lets an authenticated user with workflow-exec
models/repo_mirror.go in Gitea before 1.7.6 and 1.8.x before 1.8-RC3 mishandles mirror repo URL settings, leading to rem
Server-side request forgery and internal repository exfiltration in Gitea before 1.27.0 lets a low-privileged authentica
Authorization bypass in Gitea versions 1.22.3 through 1.26.1 allows holders of `public-only` access tokens or OAuth gran
An issue was discovered in Gitea through 1.11.5. Rated high severity (CVSS 7.5), this vulnerability is remotely exploita
Missing Authorization in GitHub repository go-gitea/gitea prior to 1.16.4. Rated high severity (CVSS 7.1), this vulnerab
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-58152
GHSA-jr5x-6h83-wrxf