How Cache Poisoning Escalated to Critical Account Takeover in TikToks Web Infrastructure
Where
Bug Bounty Village
DEF CON 34
Duration
21 min
Walks through three TikTok bug bounty reports where web cache poisoning on an OAuth login endpoint led to account takeovers.
Summary
The talk, given by a member of TikTok's vulnerability management team, challenges the view that web cache poisoning has little real impact. It starts with caching basics such as cache keys and time to live, and explains why earlier reports that exposed only public data or relied on short-lived entries were often closed as low severity.
The core of the talk is three submissions from one researcher against a single OAuth login endpoint. The first abused a redirect loop: the server kept answering with a 302 that carried the OAuth code, the cache stored it, and the attacker could use the code for a zero-click takeover. The team's fix blocked specific paths, and the second report used a malformed state value on an invalid language path to get a cached redirect, creating a one-click variant. The third used path traversal to get around the new rules, and a cached 404 leaked the code through a secondary header. The speaker notes that the mobile OAuth flow had received less scrutiny than web and was the only one affected by the first issue.
The takeaways are practical. Responses that contain user-specific data need cache keys tied to the session, and sensitive endpoints should send no-cache directives even when that costs server load. Caching rules must cover 302 and 404 responses, not only 200s. OAuth state parameters should be checked against a strict allowlist, and teams should fix root causes and test every platform, since a resolved report can still have bypasses.
Materials
Related talks
Bug Bounty Village·24 min
Alex Brumen
Explains how attacker-influenced cache key components cause collisions that poison responses in Nginx-based caching setups.
Bug Bounty Village·24 min
Shrimant More · Martzen Haagsma
Shows how HackerOne runs its own bug bounty program on its own platform, and what three disclosed reports revealed about the product.
Bug Bounty Village·24 min
Bruno Mendes · Rafael Silva
Shows how to turn a black-box arbitrary file write into remote code execution by fingerprinting the runtime and overwriting predictable framework files.


