Glossary

Credential stuffing

Credential stuffing is the practice of taking username and password pairs exposed in someone else's breach and trying them against unrelated sites, on the assumption that people reuse passwords. It is not guessing: every pair tried is a real combination that worked somewhere. That changes the arithmetic completely — a small success rate against a very large list still yields a meaningful number of working accounts.

Why it defeats defences built for guessing

Guessing needs many attempts against one account, which a per-account lockout stops.

Stuffing needs one attempt against each of many accounts, which a per-account lockout never triggers.

The traffic is also distributed across many addresses, so a per-address limit sees a normal volume from each.

And the credentials are valid, so nothing about an individual attempt looks anomalous until it succeeds.

Which is why login rate limiting is necessary and insufficient: it raises the cost and does not change the outcome.

What actually reduces exposure

Multi-factor authentication, which is the single most effective control because a correct password alone stops being enough.

Checking passwords at registration and at change against known-breached lists, which removes the reused pairs before they matter.

Detecting the pattern rather than the volume: many accounts attempted once each, rather than one account attempted many times.

Alerting on a sign-in from a new device or location, which turns a successful stuffing attempt into something the account holder notices.

Passkeys remove the class entirely, because there is no reusable secret to stuff.

What the login page itself should not do

Distinguish a wrong password from an unknown account, which lets an attacker enumerate valid usernames before trying anything.

Reveal through timing what it will not reveal through wording, which is the same disclosure by another route.

Sit behind no protection at all on a default path, which is where automated traffic looks first.

None of this is exotic, and all of it is the kind of detail that survives for years because nothing about it fails visibly.

What is observable from outside

Whether a public login entry point exists, which is what makes any of this relevant.

Whether multi-factor authentication is mentioned publicly — a mention, which cannot establish enforcement.

Whether federated sign-in is offered, which shifts credential handling to a provider that does it full time.

Whether a protection layer sits in front of the site. Nothing is ever submitted to a login form, and no credential is tried.

Why the lists exist at all

Breached credential sets circulate in aggregate, combining many incidents into a single very large file.

Age barely reduces their value, because a password reused four years ago is frequently still in use somewhere.

Which is why checking new and changed passwords against known-breached lists is worth more than any complexity rule.

And why a site that has never been breached is still exposed: the credentials come from somewhere else entirely.

Frequently asked questions

Is rate limiting enough?
No. Stuffing tries each account once from many addresses, so per-account and per-address limits rarely trigger. It raises the cost without changing the outcome.
Why does multi-factor authentication help so much here?
Because the attack's whole premise is that a valid password is sufficient. A second factor makes every reused pair worthless regardless of how many are tried.
Do you test my login page?
No. Nothing is submitted and no credential is tried. Only the public presence of a login entry point and of publicly documented controls is read.

Sources

Related

VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.

Scan a website