The Password Dump: LinkedIn 2012
LinkedIn: The Credential Cascade
The email arrived in June 2012, posted not in a corporate briefing but on a Russian cybercrime forum. A user going by the handle “dwdm” had uploaded a file containing 6.5 million password hashes — and claimed they all belonged to LinkedIn. The post offered them up for cracking. The crowd obliged. Within hours, thousands of passwords had been recovered. By the end of the week, the breach had become one of the most consequential data theft events in the history of the commercial internet.
LinkedIn’s security team scrambled. Their public response was measured — cautious, even evasive. What they did not say, and would not fully disclose for four more years, was that the true scale of the breach was not 6.5 million records.
It was 117 million.
Threat Actor Profile: Yevgeniy Nikulin
Real Name: Yevgeniy Aleksandrovich Nikulin
Handle: Unknown (identified through investigation rather than online persona)
Origin: Russian Federation; born 1987, Moscow
Status: Arrested in Prague, Czech Republic, October 2016. After a prolonged extradition dispute between the United States and Russia (both issued extradition requests), Nikulin was extradited to the United States in 2018. Convicted on multiple counts of computer intrusion, aggravated identity theft, and wire fraud. Sentenced to 88 months (7 years, 4 months) in federal prison in June 2020.
Notorious Operations:
- LinkedIn (2012): Theft of 117 million credential pairs; the breach remained underestimated for four years.
- Dropbox (2012): Simultaneous breach of the cloud storage provider, yielding approximately 68 million hashed and salted credentials. The dump wasn’t publicly surfaced until 2016, following the same pattern as LinkedIn.
- Formspring (2012): Breach of the social Q&A platform yielding approximately 420,000 password hashes. A comparatively smaller operation but demonstrating a coordinated multi-target campaign.
Methodology: Nikulin is believed to have operated with a small team. The LinkedIn breach was achieved through a combination of SQL injection and/or credential-based access against internal systems—the exact technical mechanism was never fully disclosed publicly. The simultaneous targeting of LinkedIn, Dropbox, and Formspring in the same window suggests a sophisticated, coordinated operation rather than opportunistic intrusion.
The Architecture of Failure
To understand why the LinkedIn breach was so damaging, you have to understand what they were protecting — and how poorly they were protecting it.
LinkedIn stored user passwords as SHA-1 hashes. SHA-1, by 2012, was a known-weak algorithm for password storage. It was designed as a cryptographic hash function for integrity verification, not for securing credentials at scale. It was fast — by design, for its intended purpose — which meant that an attacker with a modern graphics card could test billions of potential passwords per second against the stolen hashes.
Worse, LinkedIn had not applied salting — the practice of appending a unique random string to each password before hashing, which prevents precomputed rainbow table attacks and ensures that two users with the same password produce different hash values. Without salts, the attacker’s work was dramatically reduced. Any two users who had chosen the password “linkedin123” would produce the identical hash, and cracking it once cracked them both simultaneously.
The hashes fell like dominoes. Common passwords cracked first. Then longer ones. Then passphrases. Security researchers analyzing the dump found tens of thousands of LinkedIn employees’ credentials among the compromised records — an irony that was not lost on the industry.
The Discovery and the Cover-Up
For four years, the full extent of the breach remained officially unknown. LinkedIn acknowledged the 2012 incident, forced password resets on affected accounts, and moved on. The narrative of 6.5 million stolen hashes became the established record.
Then, in May 2016, a seller on The Real Deal — a dark web marketplace specializing in high-value stolen data — listed 117 million LinkedIn email-and-password combinations for five Bitcoin (approximately $2,200 at the time). Security researcher Troy Hunt obtained a copy and began verification against his HaveIBeenPwned database. The credentials checked out.
The breach was real. The scale was not 6.5 million — it was nearly twenty times larger.
LinkedIn acknowledged the new data, invalidated all passwords from accounts created before the 2012 breach that hadn’t been changed, and reset tens of millions more. The damage, however, had already compounded for four years. Every week since 2012, those 117 million credential pairs had been quietly weaponized in credential-stuffing attacks against every major platform on the internet — Netflix, Spotify, banking portals, email providers. Users who reused their LinkedIn password anywhere else had been compromised, silently, for years without knowing.
The Cascading Damage: Credential Stuffing at Scale
The LinkedIn dump didn’t just hurt LinkedIn users. It industrialized an attack technique.
Credential stuffing is the automated injection of stolen username-and-password pairs into login portals at scale. Attackers don’t need to crack passwords — they take the already-cracked credentials from a dump like LinkedIn’s and systematically try them against every other service on the internet. Given that password reuse across services affects an estimated 50–65% of users globally, the math is devastating.
The LinkedIn dump, combined with other major breaches of the era (Adobe in 2013, Dropbox in 2012, MySpace in 2016), created a vast interconnected credential economy. Organized criminal groups built automated toolkits — “config files” targeting specific sites — and ran them against hundreds of millions of account pairs. Entire botnets were repurposed for credential-stuffing runs. The LinkedIn breach wasn’t just a breach. It was raw material for an industry.
Attack Chain: The LinkedIn 2012 Breach
graph TD
A["🎯 Attacker: Yevgeniy Nikulin\n(Unidentified at time of breach)"] --> B["Reconnaissance\nLinkedIn Infrastructure Mapping"]
B --> C["Initial Access Vector\n(SQL Injection or Credential-Based Access\nto Internal Systems)"]
C --> D["Database Exfiltration\nUser Credentials Table"]
D --> E["117 Million Records Stolen\nEmail + SHA-1 Password Hash\n(Unsalted)"]
E --> F{"Attacker Post-Exfiltration"}
F --> G["6.5M Sample Posted to\nRussian Forum (June 2012)\nby handle 'dwdm'"]
F --> H["Full 117M Dataset\nRetained / Sold Privately"]
G --> I["Community Cracking\nGPU-Accelerated SHA-1\nBillions of guesses/sec"]
H --> J["Dark Web Sale\nThe Real Deal Marketplace\nMay 2016 — 5 Bitcoin (~$2,200)"]
I --> K["Thousands of Passwords\nRecovered Within Hours"]
J --> L["Security Researcher Troy Hunt\nVerifies Authenticity\nHaveIBeenPwned Database"]
K --> M["Credential Stuffing Campaigns\nBegin Immediately (2012)"]
L --> N["LinkedIn Forced to Acknowledge\nFull Scale of Breach (2016)"]
M --> O["Password Reuse Exploitation\nNetflix / Spotify / Banking\nPortals / Email Providers"]
N --> P["Mass Password Reset\nTens of Millions of Accounts"]
O --> Q["🔴 Years of Silent Compromise\nFor Reuse Victims (2012–2016+)"]
P --> R["LinkedIn Migrates to\nbcrypt with Salting"]
Q --> S["📊 Credential Stuffing\nIndustrialized at Scale\nLinkedIn dump = core asset"]