cache-key-discriminator-audit
Audited by Socket on Oct 2, 2026
5 alerts found:
Securityx4AnomalyThe application code shown does not establish malicious intent. It does expose account-specific financial data in HTML, and the accompanying pentest report documents an unresolved, critical cache-mediated disclosure to unauthenticated users. The cache leak is not implemented in the shown app.js, but should be treated as a serious security finding based on the supplied report. Messages and transfers also lack explicit private cache directives. Verify the routing and appliance behavior and prevent all shared caching of authenticated responses.
One key is demonstrably wrong: profile:<memberNo> can collide across tenants and expose a cached profile to another organisation. The profile key and its webhook invalidation should be tenant-namespaced together. The preference key is supported by the globally unique person_id schema and represents shared person-level preferences; the org key already includes tenantId. The fragment shows a security defect, but no evidence of intentional malware.
The fragment and incident evidence indicate a serious catalogue cache-isolation defect that exposed Acme catalogue data to Northwind. Repository equality/hash details are outside the visible portion, so the exact cause is not established, but shared caching across repository instances and the reported behavior strongly implicate cache keying. The PricingEngine method cache also retains engine instances and plausibly explains the documented memory growth. No evidence of intentional malware is present.
No clear evidence of intentional malware or obfuscation is present. The code does show a significant shared-cache isolation flaw: session-specific plan data is placed in a public cached response, and the experiment arm is generated from session data but is not visibly represented in the request header named by Vary. This can cause cross-visitor data disclosure and incorrect experiment rendering. The truncated cache implementation limits certainty about any additional key isolation.
No executable source code is supplied, so implementation behavior cannot be verified. The narrative identifies a plausible shared-cache isolation defect: a per-visitor `currentPlan` may be replayed across visitors, and experiment variants may be conflated when the cache lacks a request-side bucket discriminator. This is a security and privacy concern if the described system behavior is accurate, but the fragment itself does not demonstrate malware.