Credential Stuffing: Anatomy of an Attack and How to Stop It
Every major data breach feeds the next wave of credential stuffing attacks. Attackers take stolen username-password pairs from one breach and test them against every other login page they can find. The math is simple: people reuse passwords, so a percentage of stolen credentials will work somewhere else. At scale, that percentage is worth millions.
How credential stuffing works
A credential stuffing attack isn't sophisticated in concept. The attacker obtains a list of email-password combinations - often from a previous data breach, purchased on dark web marketplaces, or compiled from multiple leak databases. Then they use automated tools to try each combination against a target site's login endpoint.
The tools have evolved significantly. Modern credential stuffing kits handle:
- Proxy rotation: Each login attempt comes from a different IP address, often through residential proxies, making rate limiting by IP ineffective.
- Browser emulation: Requests mimic real browser fingerprints - proper user agents, headers, TLS signatures, and even JavaScript execution - to bypass bot detection.
- CAPTCHA solving: Integration with human CAPTCHA-solving services that resolve challenges in real-time for a few cents each.
- Throttling: Deliberate slowdowns to stay under rate limit thresholds. Instead of 10,000 attempts per minute, the attack runs at 50 per minute across 200 proxies.
The success rate is typically low - often between 0.1% and 2%. But when you're testing millions of credentials, even 0.1% yields thousands of compromised accounts.
The breach-to-attack pipeline
Understanding the timeline helps explain why credential stuffing is so persistent:
- Breach occurs: A company is compromised and user credentials are stolen. Sometimes the company doesn't discover the breach for months.
- Data surfaces: The stolen credentials appear on dark web forums, paste sites, or Telegram channels. Large dumps are often sold initially, then become freely available as they age.
- Combo lists compiled: Attackers merge multiple breach databases into massive "combo lists" - deduplicated files of email-password pairs sorted and optimized for automated testing.
- Automated testing: Using tools like SentryMBA, OpenBullet, or custom scripts, attackers test these credentials against target sites at scale.
- Account takeover: Working credentials are used for account takeover - stealing stored payment methods, loyalty points, personal data, or reselling the verified accounts.
The gap between step 1 and step 4 can be anywhere from days to years. Credentials from a 2019 breach can still be effective in 2026 because many users never changed their passwords.
Why traditional defenses fall short
Most businesses implement some combination of rate limiting, CAPTCHAs, and account lockouts. These are reasonable first steps, but credential stuffing has adapted to each one.
Rate limiting by IP address assumes each attacker IP will make many requests. With residential proxy networks offering millions of IPs, an attacker can limit each IP to a handful of attempts. Your rate limiter sees normal traffic from each individual address - the attack is distributed across thousands of them.
CAPTCHAs add friction for everyone, including legitimate users. They hurt conversion rates and accessibility. And they're increasingly solvable - CAPTCHA-solving services employ human workers and AI models that resolve challenges in seconds. A CAPTCHA doesn't stop credential stuffing; it adds a cost of roughly $1-3 per thousand solves. For an attacker testing a million credentials, that's a manageable expense.
Account lockouts after failed attempts can actually be weaponized. An attacker who knows your users' email addresses can deliberately trigger lockouts, creating a denial-of-service against legitimate users. And if the lockout is temporary, the attacker just waits it out.
The proxy detection gap
Here's where the connection to proxy infrastructure becomes critical. The reason credential stuffing attacks scale is proxy networks. Without proxies, an attacker is limited to a handful of IP addresses, making detection trivial. With access to a residential proxy network, the same attacker can distribute their attempts across millions of clean-looking IPs.
This is the same challenge we explored in our post on why residential proxies are the hardest threat to detect. Each individual login attempt looks like a normal user connecting from a normal residential IP. The attack is invisible at the per-request level - it only becomes visible when you zoom out and look at patterns.
But you can shift the odds significantly by identifying the proxy layer. If you can flag that a login attempt is coming through a known VPN, proxy, Tor exit node, or datacenter IP, you've added a strong signal to your detection stack - even if no single signal is conclusive on its own.
The real cost of account takeover
When a credential stuffing attack succeeds, the damage extends well beyond the compromised account:
- Direct financial loss: Attackers drain stored payment methods, redeem gift card balances, transfer loyalty points, or make fraudulent purchases. For e-commerce platforms, chargebacks and refunds follow.
- Data theft: Compromised accounts expose personal information - addresses, phone numbers, order history, saved documents - that can be used for identity theft or social engineering.
- Reputational damage: Users who discover their accounts were compromised lose trust in your platform. The support burden spikes, social media complaints mount, and some customers leave permanently.
- Regulatory exposure: Depending on your jurisdiction, account takeovers that expose personal data can trigger breach notification requirements under GDPR, CCPA, or other privacy regulations. The compliance cost compounds the direct financial loss.
- Account resale: Verified accounts on popular platforms have resale value. A working Netflix, Spotify, or gaming account sells for $1-10 on underground markets. Multiply that by thousands of compromised accounts and the economics are clear.
Layered detection that actually works
Effective credential stuffing defense combines multiple signals rather than relying on any single mechanism. Each layer catches a different slice of attack traffic:
- IP intelligence: Check every login attempt against a comprehensive database of VPN IPs, proxy IPs, Tor exit nodes, and datacenter ranges. A login from a known proxy is not proof of an attack, but it's a risk signal worth scoring. This is where having a current, well-maintained IP reputation database matters - stale blocklists miss the majority of proxy infrastructure.
- Velocity tracking: Monitor not just per-IP request rates but global patterns - spikes in failed logins across your entire platform, even if no single IP exceeds a threshold.
- Device fingerprinting: Browser and device characteristics that persist across IP changes. If the same device fingerprint appears behind 50 different residential IPs attempting logins, that's a strong signal.
- Geographic consistency: A user who always logs in from Berlin suddenly authenticating from a datacenter in Singapore warrants additional verification, not an outright block.
- Credential-level monitoring: If the same password is being attempted with different usernames - or the same username with slight password variations - that pattern indicates automated testing rather than a human who forgot their password.
The disposable email connection
Credential stuffing and disposable email abuse often appear together. After compromising accounts, attackers frequently change the associated email to a disposable address - making account recovery harder for the legitimate owner and masking the attacker's identity.
Similarly, multi-accounting operations use disposable emails to create the initial accounts that are later sold or used for fraud. Blocking disposable email domains at both signup and account modification points closes a vector that credential stuffing operations depend on. For more on this, see our post on how disposable email services work.
Building your defense stack
If you're designing or improving credential stuffing defenses, here's a practical sequence:
- Start with IP intelligence. Check login attempts against VPN, proxy, Tor, and datacenter databases. This single layer eliminates the most obvious automated traffic and raises the cost for attackers who rely on cheap proxy infrastructure.
- Add velocity detection. Track failed login rates globally, not just per-IP. Set alerts for unusual spikes in authentication failures.
- Implement step-up authentication. When risk signals are present (proxy IP + new device + unusual location), require additional verification rather than blocking outright. This catches attacks without punishing legitimate users on VPNs.
- Monitor for email changes. Flag account modifications to disposable email domains as high-risk events requiring re-authentication.
- Log and review. Keep proportionate logs of flagged login attempts. Patterns that aren't visible in real-time often become obvious in post-incident analysis.
Why local IP lookups matter here
Login endpoints are latency-sensitive. Adding an external API call to every authentication request introduces delay and creates a single point of failure. If your IP intelligence provider's API goes down, you're either blocking all logins or letting all traffic through unscreened.
This is why AntiProxies is built as a downloadable database rather than an API service. The full dataset - VPN IPs, proxy IPs, Tor exit nodes, datacenter ranges, and disposable email domains - runs on your infrastructure. Lookups happen locally in microseconds, with no external dependency. Your login flow stays fast, your detection stays online, and no user IP addresses are sent to a third party. The database is updated monthly, so your coverage stays current without the staleness problem that plagues static blocklists.
Credential stuffing isn't going away. As long as people reuse passwords and breaches keep happening, attackers will keep testing stolen credentials at scale. But with the right detection layers in place - starting with solid IP intelligence - you can make your platform an expensive, unrewarding target. And that's usually enough to send attackers looking for easier prey. For more on the broader business impact, see our post on the hidden cost of bot traffic. To understand how proxy infrastructure enables these attacks, read our comparison of proxy vs VPN vs Tor and our post on mobile proxies - the hardest proxy category to block, and see our guide on how payment fraud and bot attacks target checkout flows. For VPN and proxy detection implementation, explore our VPN/proxy detection page.