LQ-01 · Alta
Los empleados pueden leer gastos ajenos cambiando el ID
Evidencia
La evidencia y los registros originales se conservan en inglés.
GET /rest/v1/expenses?id=eq.1042 as staff@test.example → 200, owner_id ≠ caller. Policy expenses_select uses auth.role() = 'authenticated'.
Plan de corrección
Limite la lectura en la base de datos al propietario; los gerentes deben acceder solo a su equipo. No cambie otras tablas.
Resultado de nueva prueba
Corrección confirmada — Retest 14 Oct 2026: request returned 0 rows for Staff; Manager access intact.
LQ-02 · Alta
Los empleados pueden aprobar gastos mediante la API
Evidencia
La evidencia y los registros originales se conservan en inglés.
POST /functions/v1/approve-expense {id:1051} as staff@test.example → 200, status changed to approved.
Plan de corrección
Verifique el rol de gerente en el servidor antes de aprobar. Devuelva 403 para otros roles; ocultar el botón no basta.
Resultado de nueva prueba
Falla aún presente — Retest 14 Oct 2026: role check added in UI layer only; API still accepted Staff approval.
LQ-03 · Media
Los enlaces de recibos funcionan sin sesión y no caducan
Evidencia
La evidencia y los registros originales se conservan en inglés.
Bucket 'receipts' public = true. Object URL fetched without auth → 200.
Plan de corrección
Haga privado el almacenamiento de recibos. Genere enlaces de diez minutos solo para usuarios autorizados.
Resultado de nueva prueba
Esperando nueva prueba
LQ-04 · Baja
No se pudo confirmar la exportación para empleados
Evidencia
La evidencia y los registros originales se conservan en inglés.
Export job exceeded 120s runner budget for both accounts. No response body captured.
Plan de corrección
Investigue el límite de dos minutos de exportación con datos sintéticos y verifique el rol de gerente en el servidor.
Resultado de nueva prueba
Esperando nueva prueba
LQ-05 · Alta
El asistente permite a empleados activar la herramienta de aprobación
Evidencia
La evidencia y los registros originales se conservan en inglés.
Assistant tool approve_expense executed for a Staff session. Tool definition has no role requirement; server key used for the update.
Plan de corrección
Ejecute approve_expense con la sesión del usuario, no una clave de servicio. Verifique el rol de gerente antes de modificar datos.
Resultado de nueva prueba
Esperando nueva prueba