]> source.dussan.org Git - gitea.git/commitdiff
Fix missing authorization check on pull for public repos of private/limited org ...
authorCirno the Strongest <1447794+CirnoT@users.noreply.github.com>
Fri, 29 May 2020 14:47:17 +0000 (16:47 +0200)
committerGitHub <noreply@github.com>
Fri, 29 May 2020 14:47:17 +0000 (15:47 +0100)
Fixes #11651

routers/repo/http.go

index 650642a581ea4a840ab9f92202ae35e87d3dcc78..1eec033882a4814fcf51ea6a1f6e5781826abcac 100644 (file)
@@ -29,6 +29,7 @@ import (
        "code.gitea.io/gitea/modules/log"
        "code.gitea.io/gitea/modules/process"
        "code.gitea.io/gitea/modules/setting"
+       "code.gitea.io/gitea/modules/structs"
        "code.gitea.io/gitea/modules/timeutil"
        repo_service "code.gitea.io/gitea/services/repository"
 )
@@ -135,6 +136,16 @@ func HTTP(ctx *context.Context) {
                environ      []string
        )
 
+       // don't allow anonymous pulls if organization is not public
+       if isPublicPull {
+               if err := repo.GetOwner(); err != nil {
+                       ctx.ServerError("GetOwner", err)
+                       return
+               }
+
+               askAuth = askAuth || (repo.Owner.Visibility != structs.VisibleTypePublic)
+       }
+
        // check access
        if askAuth {
                authUsername = ctx.Req.Header.Get(setting.ReverseProxyAuthUser)