VDB
EN
MEDIUM

GHSA-prr9-9mp4-5gp2

Gitea: Private org member list leaked via /members API endpoint — incomplete fix for PR #38145

빠른 조치

GHSA-prr9-9mp4-5gp2 — gitea.dev: 아래 명령으로 수정 버전으로 올리세요.

go get gitea.dev@v1.27.0

상세

## Summary PR #38145 fixed ListPublicMembers and IsPublicMember but missed ListMembers. Any authenticated user can enumerate ALL members (not just public ones) of a private organization.

## Affected Versions <= v1.26.4 (latest) and main branch

## Root Cause routers/api/v1/org/member.go — ListMembers():

// Missing check: if !organization.HasOrgOrUserVisible(ctx, ctx.Org.Organization.AsUser(), ctx.Doer) { ctx.APIErrorNotFound() return }

## Proof of Concept

# Setup: privateorg (private), alice = member, bob = outsider

# Bob lists ALL members of private org curl -s "http://gitea/api/v1/orgs/privateorg/members" \ -H "Authorization: token BOB_TOKEN"

# Result: HTTP 200 [{"login":"alice","email":"alice@test.com",...}] # Expected: HTTP 404

## Note This is an incomplete fix variant of PR #38145. That PR fixed public_members endpoints only. ListMembers (/orgs/{org}/members) remains unpatched.

## Fix Add to ListMembers(): if !organization.HasOrgOrUserVisible(ctx, ctx.Org.Organization.AsUser(), ctx.Doer) { ctx.APIErrorNotFound() return }

이 버전이 영향받나요?

사용 중인 패키지 버전을 입력하면 즉시 평가합니다.

영향 패키지

Go / gitea.dev
최초 영향 버전: 0 수정 버전: 1.27.0
수정 go get gitea.dev@v1.27.0

참고