Gitea · Gitea · CVE-2026-58435
**Nome do Software Vulnerável e Versões Afetadas**
Gitea versão 1.25.5
**Description**
Um problema de autorização insuficiente existe no servidor LFS onde o sistema utiliza o `UserID` incorporado em um JWT LFS para tomar decisões de autorização entre repositórios através da função `LFSObjectAccessible()`. Quando uma chave de implantação (deploy key) é usada para autenticação, o sistema define incorretamente o `UserID` como o ID do proprietário do repositório, em vez de uma identidade que represente a própria chave de implantação. Isso permite que um invasor com uma chave de implantação de escrita para qualquer repositório individual pertencente a uma vítima obtenha um JWT que personifica a vítima. Consequentemente, o invasor pode exfiltrar objetos LFS de qualquer repositório privado que a vítima possua, desde que o invasor conheça o OID SHA-256 do objeto alvo. Se a vítima for um administrador do site, todos os objetos LFS na instância do Gitea podem ficar acessíveis. O problema é acessível via comando SSH `git-lfs-authenticate` e o endpoint de API LFS batch `/info/lfs/objects/batch` quando `LFS START SERVER` está habilitado.
**Recommendations**
Para a versão 1.25.5, remova o atalho de cross-repo `LFSObjectAccessible` em `services/lfs/server.go` para exigir a prova de posse de qualquer objeto que ainda não esteja vinculado ao repositório de destino.
Para a versão 1.25.5, modifique `routers/private/serv.go` para parar de incorporar o `repo.OwnerID` no JWT para chaves de implantação, utilizando em vez disso um principal sintético ou um tipo de JWT com escopo de repositório.
Como mitigação temporária, restrinja o acesso ao endpoint de API LFS batch `/info/lfs/objects/batch` para minimizar o risco de exploração.