GHSA-j2w3-9c3r-g83q: Gitea: Private Repository Metadata Remains Accessible After Access Revocation
Summary
A user who previously had access to a private repository can continue to obtain repository metadata through GET /api/v1/user/starred after their access to the repository has been revoked.
After a collaborator is removed from a private repository, direct access to the repository is correctly denied. However, the repository may still appear in the user's starred repository list, and the endpoint continues to return repository metadata. Changes made to that metadata after access revocation are also reflected in subsequent responses.
Details
The issue affects the authenticated endpoint:
GET /api/v1/user/starred
The same behavior was also observed on:
GET /api/v1/user/subscriptions
A reproducible scenario is:
1. User alice creates a private repository.
2. User bob is granted collaborator access.
3. bob stars the repository.
4. alice removes bob from the repository collaborators.
5. Direct repository access by bob is denied.
6. bob requests /api/v1/user/starred.
7. The repository is still present in the response together with repository metadata.
Additionally, if repository metadata is modified after access revocation, the updated values are returned by /api/v1/user/starred.
As a result, a user who no longer has permission to access the repository can continue to obtain repository metadata through the starred repository list.
PoC
PoC Link
https://anonymous.4open.science/r/Gitea_PoC-EC93/5_poc_starred_list
PoC Details
1. Create a private repository:
alice/P
description = "INITIAL"
2. Add bob as a collaborator with read access.
3. As bob, star the repository:
PUT /api/v1/user/starred/alice/P
Response:
204 No Content
4. Remove bob from the collaborator list.
5. Update the repository description:
description = "AFTER-REVOKE"
6. Verify that direct repository access is no longer allowed:
GET /api/v1/repos/alice/P
Response:
404 Not Found
7. As bob, request the starred repository list:
GET /api/v1/user/starred
The response still contains the
Details
Original advisory: https://github.com/advisories/GHSA-j2w3-9c3r-g83q
Referenced CVEs
| CVE | CSIRTS overview | External |
|---|---|---|
| CVE-2026-58434 | coverage & exploitation status | NVD · CVE.org |
Same CVEs, other sources
How other CERTs, PSIRTs and databases cover the vulnerabilities in this advisory.
- high[NEW] [high] Gitea: Multiple vulnerabilitiescert-bund
More from GitHub Security Advisories
- mediumGHSA-jr6p-8pjj-mfx6: Capsule has an incomplete fix of CVE-2026-22872: TenantResource RawItems and Generators s…2026-07-31
- mediumGHSA-68cj-mvg9-rgm2: Capsule: CapsuleConfiguration NodeMetadata regex fields lack webhook validation, allowing…2026-07-31
- mediumGHSA-ff84-5f28-78qj: re2: Out-of-bounds heap read in `exec`/`test`/`match` via attacker-influenced `lastIndex`…2026-07-31
- mediumGHSA-6hxr-mr5r-9836: re2: Global `String.prototype.match` with an empty-matchable pattern never advances → inf…2026-07-31
- mediumGHSA-x83g-979r-f5fh: Sylius Mollie Plugin has unauthenticated IDOR that leaks order token and customer PII2026-07-31