PT-2026-31945 · Vikunja · Vikunja
CVE-2026-35594
·
Publicado
2026-04-10
·
Atualizado
2026-07-30
CVSS v3.1
6.5
Média
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N |
Nome do Software Vulnerável e Versões Afetadas
Vikunja versões anteriores a 2.3.0
Descrição
A autenticação de compartilhamento de links do Vikunja constrói objetos de autorização inteiramente a partir de claims JWT sem validação no lado do servidor do banco de dados. Quando um proprietário do projeto exclui um compartilhamento de link ou rebaixa suas permissões, os JWTs emitidos anteriormente continuam a conceder o nível de permissão original por até 72 horas (o
service.jwtttl padrão). A função GetLinkShareFromClaims em pkg/models/link sharing.go linhas 88-119 não executa nenhuma consulta ao banco de dados, construindo a estrutura LinkSharing puramente a partir de valores de claims JWT (id, hash, project id, permission, sharedByID). Esta estrutura é então usada em verificações de permissão dentro de funções como Project.CanRead, Project.CanWrite e Project.IsAdmin localizadas em pkg/models/project permissions.go. Ao contrário dos JWTs de usuário, que usam um TTL de 10 minutos com sessões do lado do servidor para revogação, os JWTs de compartilhamento de link têm um TTL de 72 horas sem um mecanismo de atualização.Recomendações
Atualize para a versão 2.3.0 ou posterior para incorporar a validação do banco de dados dentro da função
GetLinkShareFromClaims. Esta validação deve verificar a existência do compartilhamento de link e garantir que o nível de permissão reivindicado não tenha sido rebaixado.Exploit
Correção
Insufficient Session Expiration
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Vikunja