High

Other users' profiles via a debug header and a cache

Sector
National social network
Test type
Public bug bounty
Severity
High
Year
2026

The profile API trusted a client-supplied debug role header. With that header set, an unauthenticated request was treated as a privileged reader and the response included another user's legal name, email, date of birth, and home city and country.

The edge cache keyed on the URL and did not include that header. A personalized response was stored and then served to a later request that did not send the header. Repeating the plain request was enough to hit the cached copy. A request with no header and a cache miss did not return the profile. That is the negative control.

What we proved

Real profile fields for other users, first with the header, then without it once the response had been cached. The same user id without a warm cache entry did not leak.

What this is not

Not a write, not an account takeover, and not a full database dump in one call. It is unauthenticated read of identity fields the product does not show on the public profile, amplified by the cache.

Why a scanner misses it

The header looks like an internal test switch. A single unauthenticated request often misses, because the leak depends on a cached variant. Tools that do not vary cache state call the endpoint safe.

Buyer takeaway: A debug role header is a credential. If a cache sits in front of it, the header has to be part of the cache key, or the response must not be cacheable.

Want This Level of Testing on Your Application?

Tell us about your website, API or AI-built app. We start with a free initial security review.

Live Chat Support
Our website uses cookies, which help us to improve our site and enables us to deliver the best possible service and customer experience. See our policy Accept