PT-2026-63301 · Gitea+1 · Gitea+1
CVSS v3.1
5.4
Média
| Vetor | AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N |
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.Exploit
Correção
DoS
LPE
IDOR
Incorrect Privilege Assignment
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Gitea
Red Os