PT-2026-31945 · Vikunja · Vikunja

CVE-2026-35594

·

Publicado

2026-04-10

·

Atualizado

2026-07-30

CVSS v3.1

6.5

Média

VetorAV: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

CVE-2026-35594
GHSA-96Q5-XM3P-7M84
GO-2026-5276
OPENSUSE-SU-2026:21483-1

Produtos afetados

Vikunja