This vulnerability is authentication without authorization — a bearer token proves who you are, but nothing checks whether that caller should access the requested data. In this case, handleGetAuditLog accepts any valid operator API key and returns audit logs across all tenants. The endpoint is secured, but not correctly.

The red flag is the 1000-entry limit on responses. That limit tells you the developer was thinking about pagination and data volume — how much data to return — but the question of which caller should see which subset of entries never entered the design. That's the mental model split: data governance in one bucket, access governance in another, and no code bridging them.

This gets worse because the deployment model is self-hosted. Self-hosted implies operators managing their own infrastructure, which often maps to single-tenant mental models. But the audit log exposes actor names, operator IDs, and cross-tenant activity — the data model anticipates multiple actors even when the security model doesn't. If you're running this in a shared environment, a valid API key you issued to one team has been reading data about another team. That's not a theoretical risk; that's what the vulnerability does.

The patch in v0.3.2 presumably adds an admin check, but the question is whether it implements a proper role model or just hard-gates the endpoint to a single credential. If it's the latter, expect similar gaps in handleGetRateLimit, handleGetActor, or other monitoring endpoints — the same developer using the same mental shortcuts likely wrote them without authorization checks. Treat this as the first discovered instance of a pattern, not an isolated bug.

Audit logging, rate limiting, and actor tracking are security features, but they were added without a corresponding permission model. The fix to one endpoint doesn't create that model. Your priority is identifying other handlers that return system observability data — logs, metrics, diagnostics — and verifying each one enforces authorization, not just authentication.