Discord Read Receipts Exploit: When, How Often, How Long

April 19, 2026
Close-up of a hand holding a smartphone with POS settings displayed, next to a receipt printer.
Photo by Hook Tell on Pexels

It has been reported that a vulnerability in Discord’s Open Graph (OG) image proxy can leak more than a simple “seen” flag. The researcher’s writeup alleges that by manipulating how Discord validates and proxies link-preview images, an attacker can infer when a message was opened, how many times the preview was fetched, and roughly how long it stayed on-screen. Discord famously avoids read receipts as a privacy promise — so this stings. Ouch.

How the leak works

Normally, Discord’s backend fetches a page’s OG tags, validates the declared og:image, and creates a proxied URL on images‑ext‑1.discordapp.net; the proxy caches the image when the first client renders the embed so the origin never sees subsequent views. The bypass hinges on the separate “validation” and “proxy” fetches: the origin can hand back a valid image once for validation, then start returning 500 errors for the later proxy fetches. The validation request and the proxy request are distinguishable (timing and user-agent), so an attacker can deliberately poison the cache. Allegedly, that failure path causes the proxy to forward the error to clients instead of caching a benign response.

Timing and scope

Here’s the kicker: Discord’s client retries a failed image load six times with growing delays (waits of 2s, 3s, 4s, 5s and 6s), producing up to six separate proxy hits per viewer over roughly a 20‑second window. Each fresh proxy fetch hits the attacker’s origin when nothing was cached. Count the requests, and you get a coarse measure not just that someone opened the message, but how long the embed remained visible. The researcher built a proof‑of‑concept tracking service that automates link creation and logging, and it has been reported that the issue was classified as LOW severity by the author — still, it’s a precise timing side‑channel that undermines an important privacy expectation.

What’s next

So what should users and Discord do? For now, users should be mindful of pasting links that produce rich embeds into channels where privacy matters. Discord can plug this hole by changing proxy behavior (don’t surface origin errors, unify validation and proxy fetches, or cache benign fallbacks), and the pattern is a reminder: even well‑meaning design choices can leak signals via side channels. Who would have thought an image proxy could be the messenger — literally — for a privacy breach?

Sources: koeck.dev, Hacker News