LQ-01 · Alta
Funcionários podem ler despesas de outros ao alterar o ID
Evidência
Evidência e registros originais preservados em inglês.
GET /rest/v1/expenses?id=eq.1042 as staff@test.example → 200, owner_id ≠ caller. Policy expenses_select uses auth.role() = 'authenticated'.
Plano de correção
Restrinja a leitura de despesas no banco ao proprietário; gerentes devem acessar apenas sua equipe. Não altere outras tabelas.
Resultado do reteste
Correção confirmada — Retest 14 Oct 2026: request returned 0 rows for Staff; Manager access intact.
LQ-02 · Alta
Funcionários podem aprovar despesas pela API
Evidência
Evidência e registros originais preservados em inglês.
POST /functions/v1/approve-expense {id:1051} as staff@test.example → 200, status changed to approved.
Plano de correção
Antes de aprovar, verifique o papel de gerente no servidor. Retorne 403 para outros papéis; esconder o botão não basta.
Resultado do reteste
Falha ainda presente — Retest 14 Oct 2026: role check added in UI layer only; API still accepted Staff approval.
LQ-03 · Média
Links de recibos funcionam sem login e não expiram
Evidência
Evidência e registros originais preservados em inglês.
Bucket 'receipts' public = true. Object URL fetched without auth → 200.
Plano de correção
Torne o armazenamento de recibos privado. Gere links com validade de dez minutos apenas para usuários autorizados.
Resultado do reteste
Aguardando reteste
LQ-04 · Baixa
Não foi possível confirmar a exportação para funcionários
Evidência
Evidência e registros originais preservados em inglês.
Export job exceeded 120s runner budget for both accounts. No response body captured.
Plano de correção
Investigue o limite de dois minutos da exportação com dados sintéticos e confira o papel de gerente no servidor.
Resultado do reteste
Aguardando reteste
LQ-05 · Alta
Assistente permite que funcionários acionem a ferramenta de aprovação
Evidência
Evidência e registros originais preservados em inglês.
Assistant tool approve_expense executed for a Staff session. Tool definition has no role requirement; server key used for the update.
Plano de correção
Execute a ferramenta approve_expense com a sessão do usuário, não uma chave de serviço. Verifique o papel de gerente antes de qualquer alteração.
Resultado do reteste
Aguardando reteste