Credential stuffing

On this page 7

Credential stuffing is an automated account takeover attack in which attackers take username and password pairs leaked from one service and replay them at scale against the login endpoints of other services. It succeeds because many people reuse the same password across sites, so a single breach unlocks accounts elsewhere.

Among malware & attacks, credential stuffing stands out because it requires no vulnerability in the targeted application: every login request is technically valid. The attack is driven by large combination lists, botnets and residential proxy networks, and it is a leading cause of compromised consumer accounts in retail, streaming, gaming, banking and software-as-a-service platforms.

How a credential stuffing attack works

The attack follows a repeatable pipeline. Attackers obtain combo lists of email and password pairs from data breaches, infostealer logs and underground markets, then configure an automation tool with the target’s login flow, success markers and proxy settings. The tool submits credentials in parallel, records the valid ones, and sells or exploits the verified accounts.

Because one combination is usually tried only once per account, the traffic looks very different from guessing attacks. Success rates are low, often estimated at a fraction of a percent to a few percent depending on list freshness, but lists with millions of entries still yield thousands of working accounts.

The stages of a typical campaign are summarized below.

StageAttacker activityDefender opportunity
AcquisitionCollect combo lists from breaches and stealersMonitor for exposed employee and customer credentials
ConfigurationScript the login flow and success checksChange login flow details, add integrity tokens
DistributionSpread requests over proxies and botnetsDetect automation, not just per-IP volume
ValidationRecord successful loginsFlag unusual success-to-failure patterns
MonetizationDrain balances, resell accounts, commit fraudStep-up checks for sensitive actions
Stages of a credential stuffing campaign

Credential stuffing is often confused with brute-force attacks, but the decisive difference is that the attacker already knows a real password of the victim, just from another service. That difference changes which defenses work.

AttackInput usedAttempts per accountEffective defenses
Credential stuffingLeaked real credential pairsUsually oneMFA, breached-password checks, bot detection
Brute-force attackSystematic password guessesManyAccount lockout, rate limiting
Password sprayingA few common passwords across many usersOne to a fewBanned password lists, MFA
PhishingCredentials tricked from the userOnePhishing-resistant MFA, training
Infostealer-based takeoverStolen session cookies and saved passwordsOne or noneSession binding, token revocation
Credential stuffing and neighboring attack types

Because each account sees only one attempt, per-account lockout does not stop credential stuffing, and per-IP rate limits are weakened by residential proxy pools that rotate through hundreds of thousands of addresses.

Detection signals

Detection focuses on aggregate behavior across the login endpoint rather than on individual accounts. A sudden rise in login volume with an unusually high failure rate, many distinct usernames per client fingerprint, or logins from addresses never seen for the affected users are typical indicators.

SignalWhat it suggestsCaveat
Failure ratio spikeLarge list being testedOutages and password resets also raise failures
Unknown-user errorsList contains accounts that never existed hereRequires careful logging without enumeration
Identical client fingerprintsOne tool behind many IPsSophisticated tools randomize fingerprints
Headless browser traitsAutomation framework in useArms race with stealth plugins
Success from new devicesValid credentials used by a third partyTravel and new phones cause false positives
Indicators of credential stuffing

Detection works best when login telemetry from all channels is correlated, including web, mobile apps and partner APIs. Attackers deliberately shift to the least protected endpoint, so a sudden quiet period on the web login while mobile traffic rises is itself a signal worth investigating. Successful logins should be reviewed with the same care as failures, because they reveal which accounts are actually compromised.

Defending against credential stuffing

Effective defense is layered: it reduces the value of leaked passwords, raises the cost of automation, and limits damage after a takeover. Multi-factor authentication is the single most effective control, and passkeys based on FIDO2 remove reusable passwords entirely.

ControlEffect on the attackTrade-off
MFA or passkeysValid password alone is no longer enoughEnrollment effort, recovery processes
Breached-password screeningBlocks known leaked passwords at signup and loginNeeds a privacy-preserving lookup
Bot managementRaises cost of automated requestsFalse positives, ongoing tuning
Risk-based authenticationChallenges unusual logins onlyRequires good behavioral baselines
Uniform error messagesHides whether a username existsSlightly less helpful for real users
Step-up for sensitive actionsLimits fraud after takeoverExtra friction for payouts and changes
Defensive controls and their effect

Guidance such as NIST SP 800-63B recommends checking new passwords against lists of compromised values and avoiding arbitrary composition rules. CAPTCHAs alone are a weak control, because solving services and machine learning defeat many of them at low cost.

Business impact and common mistakes

The damage includes fraudulent purchases, stolen loyalty points, resold subscriptions, exposed personal data and support costs, along with regulatory scrutiny when personal data is accessed. Organizations sometimes treat these incidents as user negligence, but regulators increasingly expect reasonable anti-automation and MFA measures.

  • Relying on IP blocklists misses attacks routed through residential proxies.
  • Protecting only the web login leaves mobile APIs and legacy endpoints open.
  • Logging only failures hides the successful takeovers that matter most.
  • Forcing resets without notification leaves users unaware that their password is reused elsewhere.

A plain-language summary

Many people use the same password on many websites. When one website is hacked, criminals get a list of email addresses and passwords.

They then let computers try every pair on other popular sites, such as shops or streaming services. Whenever someone reused a password, the criminals get in. It is like finding one house key and trying it on every door the owner might have. A second login step, such as a code or a passkey, stops most of these attempts.

An example from practice

An online grocery chain notices that login traffic on its mobile API has tripled overnight while the failure rate jumped from 5% to 92%. The requests come from more than 40,000 residential IP addresses, each sending only a few attempts, so per-IP limits never trigger.

The security team enables bot detection on the API, forces a password reset for about 1,800 accounts that logged in successfully from new devices, and requires a one-time code before redeeming loyalty points. Within a week the attack traffic fades, and the company rolls out passkeys as a sign-in option to reduce future exposure.