Skip to contentLockpick
How it worksPricingDocs

Read

  • BlogPlain answers to common security questions
  • GuidesStep by step fixes for common setups
  • Security checksEvery check we run, explained

Learn

  • Learn with PickTwo-minute lessons on how sites get attacked
  • Lockpick for ClaudeCheck sites from Claude and other assistants
  • GlossaryThe words we use, in plain words

Company

  • ChangelogWhat changed, newest first
  • StatusWhether scans are running right now
  • Security and trustHow we check and what we never do
Sign inCheck it
Checks

Could a shared cache hand one visitor another visitor’s session?

By Mark KashefPublished October 8, 2026

This check reads the session address of a recognised sign-in library, such as Auth.js or Better Auth, as a visitor with no cookie. An empty answer is normal, and the check looks at whether a shared cache could store it.

What does this check look at?

It looks at whether the session address of a known sign-in library answers visitors with no cookie, and whether a shared cache could keep its answer. MDN explains that the no-store directive tells every cache, private or shared, not to store the response.

Only a Deep scan runs it, after you prove you own the site. It applies only when the site uses a recognised sign-in library.

See whether your site has this. A Deep scan walks the whole site, the scripts it loads and your API surface.

Run a Deep scan

What does a result mean?

What the report showsWhat it meansWhat to do
Info findingThe address answered an empty session and cannot be shared by a cache.Nothing beyond keeping no-store on it.
Medium findingThe answer could be stored by a shared cache.Send no-store and keep the auth routes out of your CDN cache.

An empty answer is how these libraries work, so a reachable address does not prove a flaw on its own. A clean result means nothing was found in what the scan read. It does not prove the problem is absent from parts the scan never sees.

How serious is a finding?

Fix this soon. A finding of this kind needs a victim or a second step before it causes harm, so it ranks below anything someone could use directly. Confidence starts low, because it is inferred from headers or declarations rather than shown directly. The report lists what to fix by how directly someone could use it, not by the severity label.

What does a confirmed finding have to show?

PartFor this check
Where it startsA shared cache between visitors and the site
The protection that should stop itCache headers let the session route be stored
What is reachedA cached session answer
What followsOne visitor's session details served to another

Fix it with your AI

One header and one CDN rule cover it.

Fix prompt for any coding agent
Make sure my sign-in library's session and auth routes can never be cached by a CDN or proxy. Set Cache-Control: private, no-store on every auth route response, exclude the auth route prefix from CDN, ISR and edge caching, and add a test that an anonymous request to the session route gets an empty session with no-store. Show me the config changes.

How to check

Say Atlas, our example app at atlas.example, put its whole site behind an aggressive CDN cache rule. The session address answers with a cacheable header, and the check flags it before anyone signs in behind that cache.

Deep scans come with the Deep plan, and pricing shows what it includes. Pulse or Deep explains what each scan reads, and the full list of checks shows the rest.

Questions people ask

Is a public session address a problem?

No. Sign-in libraries answer it with an empty session by design. The risk is a cache storing a signed-in answer and serving it to someone else.

Did Lockpick sign in to test this?

No. It only asks as a visitor with no cookie and reads the cache headers.

Run this check on your site

Only a Deep scan runs this check, once you prove you own the site. Deep walks your whole site, the scripts it loads and your API surface.

Run a Deep scan

Related pages

  • Is your sign-in system handing sessions to visitors who never signed in?
  • Is your sign-in cookie missing a protection?
  • Do your API responses send the right protective headers?

Sources

  1. Cache-Control header MDN Web Docs, read on October 7, 2026
  2. How we rate findings Lockpick docs, read on October 7, 2026

About the author

Mark Kashef, Founder of Lockpick

I'm Mark, and I build Lockpick. I write these pages, and each one is checked against its sources before it goes live. The Updated date changes only when the page itself does.

Lockpick
PricingMethodologyDocsBlogGuidesSecurity checksLearn with PickSecurity and trustLockpick for ClaudeChangelogStatusFacts for AI assistants

Lockpick is a security scanner for vibe-coded apps. It checks what your live site exposes and what a GitHub repo or AI skill would do before you install it, then gives you a fix prompt for Lovable, Bolt, Replit, Cursor or Claude Code.

Lockpick assesses public pages you are authorized to test, and public GitHub code it never runs.

© 2026 LockpickTermsPrivacyContactSign in