Gitea · Gitea · CVE-2026-56443
**Nome do Software Vulnerável e Versões Afetadas**
Gitea versão 1.26.2
**Description**
Existe uma falha que permite ignorar o escopo `public-only` de Tokens de Acesso Pessoal (PAT) quando a visibilidade do proprietário está configurada como Limited (interna da instância). Enquanto outras categorias de escopo rejeitam corretamente proprietários com visibilidade Limited, as categorias de Repositório e Pacote verificam apenas se o recurso é privado, não considerando a visibilidade Limited. Isso permite que um token com escopo `public-only` acesse conteúdos que deveriam ser restritos a usuários internos, excedendo o alcance de um usuário anônimo.
Detalhes técnicos incluem as seguintes áreas afetadas:
- **API Endpoints:** Pacotes da API v1, todos os 24 registros de pacotes nativos via `/api/packages/<type>/...`, todos os endpoints de categoria de Repositório da API v1 (incluindo conteúdo, issues, PRs, releases, labels e milestones), e endpoints de download web como `/raw`, `/media` e `/attachments`, além de rotas LFS.
- **Vulnerable Parameters or Variables:** escopo de PAT `public-only`.
- **Function Names:** `checkTokenPublicOnly()`, `reqPackageAccess()`, `TokenCanAccessRepo()` e `CheckTokenScopes()`.
**Recommendations**
Atualize o Gitea para uma versão onde as seguintes alterações sejam implementadas:
- Em `checkTokenPublicOnly()` e `reqPackageAccess()`, altere a verificação de visibilidade de `IsPrivate()` para `!IsPublic()` para proprietários de pacotes.
- Em `TokenCanAccessRepo()`, garanta que a verificação valide se a visibilidade do proprietário do repositório é pública quando o `public-only` estiver ativo.
- Em `CheckTokenScopes()`, atualize a lógica para proibir o acesso se o repositório for privado ou se a visibilidade do proprietário não for pública.
Como medida paliativa temporária, restrinja o uso do escopo de PAT `public-only` para usuários que acessam recursos de contas com visibilidade Limited.