Zhenku
Guard · Seal the Gate / Password strategy

One password, ten sites: how credential stuffing opens accounts one by one

Zhenku Editorial · Cheng Mo Published 2026-08 About 9 min
Cover for password reuse and credential stuffing

Most of what's written about credential stuffing is addressed to the people running the login page: rate limiting, bot detection, IP reputation, CAPTCHA. That's the defender's side of the wire. On your side there is really only one job, and doing it well is enough — make sure the pair that leaked somewhere else doesn't work anywhere that matters. This piece follows the chain from an old breach to an exchange account, and explains why "but my password is complicated" isn't the protection people think it is.

Stuffing isn't guessing

Start with the definition, because the whole thing turns on it. OWASP describes credential stuffing as the automated injection of stolen username and password pairs into website login forms, in order to fraudulently gain access to user accounts. It sits inside the brute-force family, but with a specific difference: brute forcing tries multiple passwords against an account — guessing, in other words — while stuffing replays known breached pairs against other websites.

That difference decides everything downstream. A sixteen-character password with symbols is excellent against guessing. It does nothing once that exact string has been copied out of some forum's database, because nobody is cracking anything — they have the plaintext. Complexity and uniqueness solve different problems: complexity stops guessing, uniqueness stops the chain reaction.

Worth a minuteTo see how your current password holds up against the guessing half, run it through the password strength check, which works locally in your browser. Just remember it only answers half the question — the other half is one password per site.

How one leak reaches your account

The chain usually runs like this:

  1. The source has nothing to do with your money. A forum you last logged into years ago, a small shop you ordered from once, an app you installed for a discount code. Its database gets taken, and the email and password you signed up with enter circulation.
  2. Breaches aren't the only source. Infostealer malware reads the password store in your browser directly and the haul joins the same datasets. Every site you use could have a spotless record and one bad install still puts you in there.
  3. The data gets cleaned into pairs. Email, password, sometimes a phone number, formatted so a script can consume it.
  4. It's replayed at scale. Requests come from large numbers of addresses, working site by site and account by account. Per account the cost is close to zero, so a low hit rate is perfectly acceptable.
  5. Hits are sorted by value. Working logins are categorised, priced and resold, and exchange accounts sit high on that price list.

Note step five: there's usually a gap between an account being opened and anything happening to it. Yours may have been on a "confirmed working" list for weeks. "Nothing has gone wrong lately" is not evidence of safety.

Why exchange accounts sit near the top of the list

Break into a bank account and you still face transfer limits, payee checks and a clearing process that can be reversed. An exchange account is different: being logged in is already most of the way there — assets can be swapped into something else, orders can be posted, an API key with permissions can be created, an address can be dropped into the whitelist to sit out its cooling period. What leaves on-chain generally doesn't come back.

Which is also why a small balance is no defence. A verified account is a usable channel in its own right; and the password that opens it very likely opens the mailbox behind it, which is the recovery route for everything else.

Separate "logged in" from "can take it away"That is exactly what the withdrawal whitelist buys you. With it on, even a correct password only lets funds go to addresses you approved earlier, and a newly added address typically has to wait out an activation delay — which is your window to get the alert and throw them out. See how the withdrawal whitelist works.

How to tell whether you're already in it

Three things you can do yourself, most reliable first:

The red lineDon't type your password into any third-party "is my password leaked" box. Real checks either run locally inside your password manager or need nothing but an email address. Any page asking for the full password to check it for you should be treated as a phishing page first — see telling a real platform message from a fake one.

Three steps that break the chain

  1. One password per site, starting with three categories. You don't have to fix everything tonight. Go in order: mailbox, exchange, anything that moves money. Make those mutually different and never used elsewhere, and the worst segment of the chain is already cut.
  2. Generate and store them in a password manager. Uniqueness only survives if you're not the one remembering. Give the manager a long master password used nowhere else, and turn on a second factor for the manager itself. If you're picking a memorable master password by hand, the UK's NCSC advice of three random words is a sound basis — length and unpredictability beat sprinkled symbols.
  3. Add a second lock so the password isn't enough. An authenticator, a hardware security key or a passkey, plus the withdrawal whitelist. Together they separate "the password is correct" from "the assets can leave". Trade-offs are in the complete 2FA guide.

When that's done, the account security checkup will show what's still missing.

Three rules that changed

These three still show up in a lot of security advice, and all three are at odds with current NIST SP 800-63B guidance:

The familiar ruleWhat the current guidance says
Passwords must mix upper case, lower case, digits and symbolsVerifiers shall not impose composition rules; length matters more, and at least 64 characters should be permitted
Change your password every 90 daysVerifiers shall not require periodic changes, and shall force one only where there is evidence the credential is compromised
Complex enough means it can't be stuffedNew and changed passwords must be compared against a blocklist of known common, expected or compromised values — because stuffing turns on whether the string has appeared elsewhere, not on how complex it is

Why did forced rotation fall out of favour? Because someone made to change every quarter mostly adds a digit to the end. The rule looks stricter and the result is more predictable, while quietly encouraging reuse. What actually works is the unglamorous version: long, unique per site, kept in a manager.

The short versionCredential stuffing isn't aimed at you personally; it's aimed at the fact that one pair works in several places. Complexity handles guessing, uniqueness handles the chain reaction, and only one of those can't be substituted. Account-security guidance only, not investment advice.

FAQ

My password is very complex. Do I still need a different one per site?

Yes. Credential stuffing does not guess, it replays real pairs leaked somewhere else, so complexity has no effect at that step — what leaked was the plaintext, and a complicated string copies just as well as a simple one. Complexity defends against guessing; uniqueness is what defends against the chain reaction. What decides whether one breach reaches your other accounts is how many sites shared that password.

Should I still change my passwords every few months?

Current NIST SP 800-63B guidance says verifiers shall not require users to change passwords periodically, and shall force a change only where there is evidence the credential has been compromised. Forced rotation pushes people into adding a digit to the end of the old password, which is easier to predict, not harder. Length, uniqueness and a password manager do far more than a calendar reminder.

How do I find out whether my details are in a leak?

Use the breach check built into your own password manager, or a public service that asks only for an email address. Never type the password itself into a third-party box to have it checked — that is exactly what a phishing page would ask for. And treat a clean result as inconclusive: plenty of data circulates for a long time before it is publicly catalogued.

There isn't much in the account. Does it matter if someone gets in?

The balance is not the only cost. An exchange account that someone can log into is a verified channel: it can be used to trade, to post C2C orders, or to quietly leave an API key or a whitelisted withdrawal address that pays off the next time you deposit. And the password that opened it very likely opens your mailbox too, which is the recovery route for everything else you own.

Is letting the browser remember passwords good enough?

It fixes the memory problem but not the theft problem: infostealer malware goes straight for the browser's saved password store and the results end up in the same datasets used for stuffing. A dedicated password manager is the sturdier choice, with a long master password used nowhere else and its own second factor turned on, and no logging into it from shared or unknown machines.

CM
Cheng Mo · Zhenku Editorial

"Cheng Mo" is a pen-name and doesn't represent any licensed expert. The attack definition and the password requirements here are checked line by line against the published OWASP and NIST documents; there is no unverified first-hand account and no leak data of our own. We don't give investment advice; if you spot something we got wrong, please tell us via corrections.

Sources

  • OWASP · definition of credential stuffing and how it differs from brute forcing (owasp.org, checked 2026-08-30)
  • NIST SP 800-63B · password length, no composition rules, no periodic rotation, blocklist comparison (NIST 800-63B, checked 2026-08-30)
  • UK NCSC · three random words guidance for memorable passwords (ncsc.gov.uk, checked 2026-08-30)