On June 6, 2012, a hacker using the pseudonym "dwdm" posted a 6.5 million entry SHA-1 hash file to a Russian hacker forum with a request for help cracking the hashes. Within hours, the security community had identified the hashes as LinkedIn password hashes. LinkedIn confirmed a breach the next day. What nobody knew at the time - not LinkedIn, not the security researchers, not the public - was that the actual scale of the breach was nearly 18 times larger than what had been posted. The full dataset of 117 million LinkedIn credentials would not surface until 2016, when it was listed for sale on a darknet market for 5 Bitcoin.
The LinkedIn breach is significant for two reasons beyond its scale. First, it illustrated a critical failure mode in password storage: LinkedIn was using unsalted SHA-1 hashes. SHA-1 is a cryptographic hash function that was never designed for password storage, and without salting - adding a random value to each password before hashing - identical passwords produce identical hashes. This made the LinkedIn dataset trivially vulnerable to precomputed rainbow table attacks and bulk cracking. Second, the 2016 re-emergence of the full dataset, four years after the initial breach, showed how stolen credential databases persist and resurface in ways that extend victim harm well beyond the original incident.
Unsalted SHA-1 and Why It Was Catastrophic
In 2012, there was no excuse for using unsalted SHA-1 for password storage. The problems with SHA-1 for passwords had been known and documented for years. Password storage requires a function that is computationally expensive to compute (to slow brute-force attacks), produces unique output even for identical inputs (to prevent rainbow table attacks), and is designed specifically for the password-storage use case rather than general-purpose hashing.
LinkedIn used SHA-1 without salts. This meant every user with the password "password123" had the exact same hash in the database. An attacker could precompute SHA-1 hashes for billions of common passwords and instantly crack any matching hash - no repeated computation needed. Using modern GPU-accelerated cracking tools and dictionaries of common passwords, the vast majority of LinkedIn's password hashes could be cracked within hours. Security researchers who analyzed the 6.5 million hash sample in June 2012 reported cracking over 90% within 24 hours using commodity hardware.
The 2016 Re-Emergence
In May 2016, nearly four years after the original incident, a user named "Peace" listed a database of 117 million LinkedIn email/password pairs on a dark web marketplace called "The Real Deal" for 5 Bitcoin (approximately $2,200 at the time). The dataset included the original 6.5 million sample plus 111 million additional records that had never been publicly disclosed.
LinkedIn's original response to the 2012 breach had been based on the assumption that only 6.5 million accounts were compromised - because that's all that had been posted publicly. The actual intrusion had apparently exfiltrated far more. LinkedIn invalidated the passwords of the 6.5 million affected accounts in 2012 but did not proactively reset passwords for the remaining 111 million because they didn't know those accounts were compromised.
When the full dataset emerged in 2016, LinkedIn invalidated passwords for all accounts from the 2012 breach era that hadn't changed their passwords since then. But four years had passed. Many of those credentials had been used in credential stuffing attacks against other services throughout the intervening period without the victims knowing their LinkedIn password was in a breach database.
Legal Consequences and Attribution
In 2016, US authorities arrested Yevgeniy Nikulin, a Russian national, in Prague. He was charged with computer fraud related to the LinkedIn breach, a Dropbox breach (affecting 68 million accounts in 2012), and a Formspring breach. Nikulin was extradited to the US in 2018 after a prolonged extradition dispute in which Russia also sought his extradition on separate fraud charges. He was convicted in 2020 and sentenced to 88 months in prison.
Nikulin's case was notable because Russia's simultaneous extradition request for him - on unrelated wire fraud charges - was widely interpreted as an attempt to prevent him from cooperating with US authorities. The timing and circumstances led some observers to speculate about whether Russian intelligence had any interest in the credential databases Nikulin possessed. No evidence of state involvement was established.
LinkedIn settled a class action lawsuit for $1.25 million in 2015, covering users in California who were affected by the breach. The settlement was criticized as inadequate - approximately $0.34 per affected user for the 3.6 million California users in the class. LinkedIn also faced a Federal Trade Commission inquiry that did not result in formal enforcement action.