Gitea: Private Repository Metadata Remains Accessible After Access Revocation
위협 신호 · CVSS · EPSS · KEV
이론적 심각도 점수
예측 데이터 없음
실측 악용 기록 없음
계획된 패치 주기 내 조치(60일 이내)
CVSS 벡터 · 메트릭
CVSS 벡터 정보 없음
상세 설명
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:
1GET /api/v1/user/starredThe same behavior was also observed on:
1GET /api/v1/user/subscriptionsA reproducible scenario is:
- User
alicecreates a private repository. - User
bobis granted collaborator access. bobstars the repository.aliceremovesbobfrom the repository collaborators.- Direct repository access by
bobis denied. bobrequests/api/v1/user/starred.- 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
- Create a private repository:
1alice/P 2description = "INITIAL"-
Add
bobas a collaborator with read access. -
As
bob, star the repository:
1PUT /api/v1/user/starred/alice/PResponse:
1204 No Content-
Remove
bobfrom the collaborator list. -
Update the repository description:
1description = "AFTER-REVOKE"- Verify that direct repository access is no longer allowed:
1GET /api/v1/repos/alice/PResponse:
1404 Not Found- As
bob, request the starred repository list:
1GET /api/v1/user/starredThe response still contains the repository entry and reflects the updated description:
1{ 2 "full_name": "alice/P", 3 "description": "AFTER-REVOKE", 4 "private": true 5}This demonstrates that repository metadata remains accessible through the starred repository list even after repository access has been revoked.
Impact
A user who previously had legitimate access to a private repository can continue to retrieve repository metadata after losing access to the repository.
The exposed information includes repository metadata returned by the endpoint, such as:
- Repository name (
full_name) - Repository description
- Repository visibility status (
private)
This issue does not expose repository contents, source code, issues, pull requests, secrets, or collaborator information.
The impact is limited to continued access to repository metadata after repository permissions have been revoked.
AI 심층 분석
공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.
참고 자료 7
링크 내용 불러오는 중…