Kevinpapst

#12596de 53,633
21.5CVSS total
Vulnerabilidades · 3
Média
2
Crítica
1
PT-2026-23088
6.5
2026-03-04
Kimai · Kimai · CVE-2026-28685
**Nome do Software Vulnerável e Versões Afetadas** Versões do Kimai anteriores à 2.51.0 **Descrição** O Kimai é um aplicativo de rastreamento de tempo multiusuário baseado na web. O endpoint da API `GET /api/invoices/{id}` verifica apenas a permissão `view invoice` baseada em função, mas não confirma se o usuário solicitante tem acesso ao cliente da fatura. Um usuário com a função `ROLE TEAMLEAD`, que concede a permissão `view invoice`, pode acessar todas as faturas no sistema, mesmo aquelas associadas a clientes atribuídos a diferentes equipes. O problema decorre da ausência de uma verificação de acesso ao cliente no endpoint da API, ao contrário do controlador web, que implementa corretamente essa verificação. O código vulnerável está localizado em `src/API/InvoiceController.php`, linhas 92-101. A função `getCustomer()` dentro de `CustomerVoter` verifica a associação à equipe, mas essa verificação não é aplicada ao endpoint da API. Uma prova de conceito demonstra que um líder de uma equipe pode ler faturas pertencentes a clientes de outra equipe usando uma simples requisição `curl` ao endpoint da API afetado. Isso permite acesso não autorizado a informações financeiras sensíveis, como valores de faturas, detalhes do cliente e condições de pagamento, comprometendo potencialmente o isolamento de dados em implantações multi-equipe. O parâmetro vulnerável é `id` no endpoint ''/api/invoices/{id}''. **Recomendações** Versões anteriores à 2.51.0 devem ser atualizadas para a versão 2.51.0 ou posterior. Adicione a verificação de acesso ao cliente ao endpoint da API, espelhando a implementação no controlador web. Especificamente, inclua a seguinte expressão na função `getAction` de `src/API/InvoiceController.php`: `#[IsGranted(new Expression("is granted('access', subject.getCustomer())"), 'invoice')]`.