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')]`.