Gitea · Gitea · CVE-2026-58439
**Nome do Software Vulnerável e Versões Afetadas**
Gitea versões anteriores a 1.27.0
**Description**
O Gitea não reavalia a flag `official` em revisões de pull requests existentes quando o branch de destino de um pull request é alterado. Um invasor com acesso de escrita a um repositório pode obter uma aprovação `official: true` em um pull request direcionado a um branch não protegido e, em seguida, redirecionar esse pull request para um branch protegido. Como o sistema não verifica se o revisor está na lista de permissões (whitelist) de aprovação do novo branch de destino, a aprovação obsoleta é preservada. Isso permite que o invasor satisfaça os requisitos do branch protegido e mescle alterações sem a aprovação legítima do mantenedor, contornando efetivamente a proteção de branch e escalando privilégios.
Detalhes técnicos incluem o seguinte:
- **API Endpoints:** `/api/v1/repos/{owner}/{repo}/pulls` e `/api/v1/repos/{owner}/{repo}/pulls/{index}/reviews` são utilizados durante o processo de exploração.
- **Vulnerable Parameters or Variables:** A flag `official` é armazenada como um booleano no registro de revisão e não é atualizada durante o processo `ChangeTargetBranch`.
- **Function Names:** O problema envolve as funções `IsUserOfficialReviewer()`, `ChangeTargetBranch()` e `GetGrantedApprovalsCount()`, que falha ao re-verificar a lista de permissões em relação ao novo branch.
**Recommendations**
Atualize o Gitea para a versão 1.27.0 ou posterior.
Como medida de mitigação temporária, restrinja o acesso de escrita aos repositórios apenas a usuários confiáveis para evitar o redirecionamento não autorizado de pull requests.