A developer builds a user profile endpoint. The database has a full user record: id, name, email, passwordHash, resetToken, isAdmin, role, internalNotes, createdAt, lastLogin, balance.
The developer serializes the whole object and returns it from the API — it's fast and simple. The frontend only displays: name, email, and bio. The developer thinks, "the sensitive fields aren't shown, so we're fine."
An attacker opens their browser's dev tools, looks at the Network tab, and reads the raw API response. They see every field.
If the API returns an active password reset token in the profile response, an attacker who can read it can immediately take over the account — without triggering a reset request themselves. No email. No notification. Silent takeover.