T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/token_usage_dashboard.py:277- Finding
RBAC Filtering Fails to Remove Sensitive Call-Level Data
- Content
View full analysis
List[Dict[str, Any]]: """Build normalized per-call records from row-level payloads. Supported nested keys (per day): llmCalls/apiCalls/requests/events. """ out: List[Dict[str, Any]] = [] for row in rows: day = str(row.get("date") or "") for key in ("llmCalls", "apiCalls", "requests", "events"): raw_calls = row.get(key) if not isinstance(raw_calls, list): continue for c in raw_calls: if not isinstance(c, dict): continue prompt_tokens = _safe_float(c.get("promptTokens") or c.get("inputTokens")) completion_tokens = _safe_float(c.get("completionTokens") or c.get("outputTokens")) total_tokens = _safe_float(c.get("totalTokens"), prompt_tokens + completion_tokens) cost = _safe_float(c.get("cost") or c.get("costUSD")) latency_ms = _safe_float(c.get("latencyMs") or c.get("responseMs") or c.get("durationMs"), default=-1.0) model = c.get("modelName") or c.get("model") or "unknown" model_type = c.get("modelType") or str(model).split("-")[0] task = c.get("useCase") or c.get("task") or c.get("scenario") or "unspecified" out.append( { "date": day, ...[truncated 7964 chars]- Remediation
View remediation
