T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:497- Finding
Cross-User Semantic Cache Can Expose Sensitive Query and Response Content
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:497, 572, 738
Vulnerability Type: Missing tenant isolation and unsafe cross-user cache sharing
Risk Level: HighVulnerable Code Snippet
json { "budget": {"monthly": 50.00, "alertThreshold": 0.8}, "team": {"sharedCache": true, "reportFrequency": "weekly"} }The documentation also explicitly recommends cross-user cache reuse and states that the shared cache contains query-response pairs. It claims that omitting user identifiers from cache keys prevents privacy exposure, but this does not remove sensitive information from the cached queries or responses themselves.
Technical Analysis
The recommended team configuration enables
sharedCacheby default in the example. The cache is designed to store user queries and generated responses and return responses for semantically similar queries.Omitting a user ID from the cache key does not provide confidentiality or authorization. Instead, it removes a possible isolation boundary. Queries and responses may contain proprietary source code, credentials, personal information, internal system details, or confidential business data. Hashing the query only obscures the lookup key; it does not sanitize or encrypt the cached value.
The documented design does not specify:
- Per-user, per-project, or per-tenant namespaces
- Authorization checks before returning cached content
- Secret or sensitive-data detection
- Encryption of cached values
- User consent for sharing generated content
- Cache deletion, retention, or expiration controls
- Protection against semantic matching across security boundaries
This exceeds the minimum privileges required for token optimization. Cost reduction and semantic caching can be implemented with user-isolated caches without allowing one team member to access content originating from another member.
Attack Path
- A team administrator deploys the recommend ...[truncated 1492 chars]
- Remediation
View remediation
Remediation Suggestions
- Change all recommended configurations so that
sharedCachedefaults tofalse. - Partition caches by organization, project, user, data classification, and authorization context.
- Include an authorization-scope identifier in the cache key and verify the caller's authorization before returning an entry.
- Never share cache entries merely because two queries are semantically similar.
- Detect and reject secrets, credentials, personal data, and other sensitive content before caching.
- Encrypt cached content at rest and in transit using managed keys with appropriate access policies.
- Apply short, configurable retention periods and provide explicit cache inspection and deletion controls.
- Require informed administrator and user consent before enabling any cross-user sharing.
- Record cache reads and writes in an audit log without logging the sensitive content itself.
- Add security tests proving that users in different authorization scopes cannot retrieve one another's entries.
- Correct the FAQ statement that shared query-response caches cannot leak privacy merely because user IDs are absent from cache keys.
- Change all recommended configurations so that
