The biggest vulnerabilities since 1995

The vulnerabilities that changed IT security, from Code Red to PHP2Shell: the official record, the severity score, the timeline from report to fix to attack, and the figures behind each case.

Cases
13
Rated critical
5
Attacks on industrial control systems
11

Vulnerabilities

2026PHP2Shell: the flaws in PHP that put most websites at riskTwo flaws in PHP itself let attackers take over web servers without a password. The fixed PHP versions, the applications affected, and what to do now. 2023MOVEit: the file transfer flaw that Cl0p used to steal dataA flaw in the file transfer server MOVEit Transfer let the Cl0p gang steal data from 2,773 organizations. How it worked, who was hit, and what to do now. 2021Log4Shell: when a line in a log runs the attacker's codeA flaw in Log4j, a logging library for Java, let attackers take over servers with one line of text. How it worked, how far it reached, what to do now. 2021ProxyLogon: the Exchange flaws that opened mail serversFour flaws in Microsoft Exchange let attackers read mailboxes and take over mail servers without a password. How it worked, who was hit, what to do now. 2018Spectre: when the speed tricks of processors leak secretsA design flaw in processors from Intel, AMD and Arm let programs read memory they should never see. How it works, what the fixes cost, and what to do now. 2018Meltdown: the processor flaw that opened protected memoryA design flaw in most Intel processors let any program read the operating system's protected memory. Why it scores only 5.6, and how the fix works. 2017NotPetya: the destructive worm hidden in a software updateA hijacked update of a Ukrainian accounting program released a worm that posed as ransomware, destroyed data and caused billions of dollars in damage. 2017WannaCry: the ransomware worm that hit the NHSA worm used a leaked NSA attack tool and a Windows flaw to lock more than 200,000 computers. How it spread, what it cost the NHS, and the fix. 2014Shellshock: the Bash flaw that let one web request run commandsA flaw in Bash, the command shell of Linux and macOS, let attackers run commands on web servers with one request. How it worked, the attacks, the fix. 2014Heartbleed: the flaw that let attackers read server memoryIn April 2014, an OpenSSL flaw let attackers read the memory of 24–55 % of popular HTTPS servers. How it worked and why patching alone was not enough. 2008Conficker: the worm that infected millions of Windows computersWithin a year of November 2008, Conficker infected 5 to 13 million Windows computers. How it spread and how over 100 countries joined the defense. 2003SQL Slammer: the worm that hit 90 % of its targets in 10 minutesIn January 2003, a worm of just 376 bytes infected more than 90 % of vulnerable Microsoft SQL servers within 10 minutes. How it spread, and what it hit. 2001Code Red: the worm that infected 359,000 servers within 14 hoursIn July 2001, the Code Red worm infected more than 359,000 computers running Microsoft's web server in under 14 hours, a month after the fix came out.

The cases and the criteria they meet

NameYearCVSSReachMass exploitationDamageExtraordinary response
Code Red200110.0 met met metnot met
SQL Slammer20037.5not met met metnot met
Conficker200810.0 met metnot met met
Heartbleed20147.5 metnot metnot met met
Shellshock20149.8 met metnot metnot met
WannaCry20178.8 met met met met
NotPetya20178.8not met met metnot met
Meltdown20185.6 metnot metnot met met
Spectre20185.6 metnot metnot met met
ProxyLogon20219.8 met metnot met met
Log4Shell202110.0not met metnot met met
MOVEit Transfer20239.8not met met metnot met
PHP2Shell20269.8 metnot metnot met met
Severity score of the main CVE
Code Red10.0
Conficker10.0
Log4Shell10.0
Shellshock9.8
ProxyLogon9.8
MOVEit Transfer9.8
PHP2Shell9.8
WannaCry8.8
NotPetya8.8
SQL Slammer7.5
Heartbleed7.5
Meltdown5.6
Spectre5.6

CVSS base scores from the US National Vulnerability Database. Older entries carry version 2 scores, which use a different scale.

Every case from 1995 to 2026

VulnerabilitiesAttacks on industrial control systems

1995200020052010201520202025Code RedSQL SlammerConfickerHeartbleedShellshockWannaCryNotPetyaMeltdownSpectreProxyLogonLog4ShellMOVEit TransferPHP2ShellStuxnetHavexGerman steel millBlackEnergyIndustroyerTRISISEKANSIndustroyer2PIPEDREAMFuxnetFrostyGoop

Attacks on industrial control systems

Attacks that reached industrial control systems, documented in public technical analyses: what happened, how the attackers got in, and what it did to the process.

2024Destruction

Fuxnet

sensor gateways bricked — Claroty's estimate (attackers claimed about 1,700)
500+
sensors the attackers claimed destroyed; Claroty believes they likely survived
87,000

In April 2024 a group calling itself Blackjack said it had wrecked Moscollector, a Moscow company that monitors the city’s underground water and sewage network. The malware, which the attackers called Fuxnet, ran on the network’s sensor gateways — small Linux computers that gather readings from thousands of underground sensors over a serial standard called M-Bus. On each gateway it cut off remote access, deleted parts of the file system, and rewrote the flash memory until it failed.

It also flooded the M-Bus wiring with junk, hoping to damage the sensors too. How Blackjack first got in is not documented; the group claimed access since June 2023. The attackers claimed 87,000 destroyed sensors and 30 terabytes wiped; the security firm Claroty, analysing the malware and the leaked data, estimates only a little over 500 gateways were bricked and the sensors likely survived. Claroty reports Blackjack as believed linked to Ukrainian intelligence, unconfirmed by any government.

Target
Moscollector, a Moscow company that monitors underground water and sewage infrastructure
Attributed to
Blackjack (Claroty reports Blackjack as believed linked to Ukrainian intelligence; no government has confirmed this)
Way in
Not public
Protocols
M-Bus
Systems attacked
Linux sensor gateways (MPSB and TMSB) and a 3G router, linked to sensors over the M-Bus serial protocol
1 source
  1. Claroty Team82: Unpacking the Blackjack group's Fuxnet malware

2024Disruption

FrostyGoop

apartment buildings left without heating (Dragos)
600+
that the heating stayed off, in sub-zero cold (Dragos)
~2 days

In January 2024, during a sub-zero winter, heating went off for more than 600 apartment buildings in a Ukrainian city — Lviv, according to Dragos — for almost two days. The malware behind it, later named FrostyGoop, is a small program that talks to heating controllers over Modbus TCP — a plain, widely used protocol that sends commands on port 502, usually without a password. It read and changed the controllers’ holding registers, the memory slots that hold their settings, and downgraded their software so they could no longer report their status.

That left operators without a clear view while the controllers ran on wrong information. Dragos reconstructs the likely entry: months earlier the attackers exploited a flaw in an internet-facing router, planted a web tunnel reached over Tor, and stole Windows credentials; because the network was flat, nothing separated the controllers, so they could be reached directly. Dragos does not attribute the attack, noting only — without drawing a conclusion — connections to Moscow-based addresses during the incident.

Target
A district heating company in Lviv, Ukraine
Attributed to
Not attributed (Dragos saw connections to Moscow-based addresses but does not attribute the attack)
Way in
Internet-facing router, Stolen credentials
Protocols
Modbus TCP
Systems attacked
ENCO heating controllers, reached over Modbus TCP on port 502
2 sources
  1. Dragos intelligence brief: FrostyGoop ICS malware
  2. Dragos blog: FrostyGoop targeting operational technology

2022Disruption

Industroyer2

power outages — the attack was stopped in time (CERT-UA)
0
industrial protocol it used, down from four in the 2016 version (ESET)
1

On April 8, 2022, the group Sandworm tried to switch off part of Ukraine’s power grid. Its tool, named Industroyer2 by the security firm ESET, was a stripped-down successor to the Industroyer malware from 2016. It spoke only one industrial protocol, IEC 104, and carried the target substations’ addresses and switching commands inside the program itself, so it was built for one specific utility. Separate ‘wiper’ malware was lined up to destroy the utility’s Windows, Linux and Solaris servers at the same time.

How the attackers first entered is not public, but they already held administrator access: they pushed the malware out through Windows Group Policy and set a scheduled task to run it that evening. CERT-UA, Ukraine’s incident team, says the network had been compromised since at least February 2022, and that the plan was stopped in time — no outage occurred. CERT-UA attributes the attack to Sandworm (UAC-0082); ESET assesses this with high confidence.

Target
A Ukrainian electricity utility; its high-voltage substations
Attributed to
Sandworm (CERT-UA attributes it to Sandworm (UAC-0082); ESET assesses this with high confidence)
Way in
Not public
Protocols
IEC 104
Systems attacked
High-voltage substation equipment, commanded over the IEC 104 protocol
2 sources
  1. ESET: Industroyer2, Industroyer reloaded
  2. CERT-UA#4435: the attack on a Ukrainian energy facility

2022Disruption

PIPEDREAM / INCONTROLLER

times it was used — the toolkit was found before any attack (Dragos)
0
the seventh known piece of ICS-specific malware, by Dragos's count
7

PIPEDREAM is a case with no victim. In early 2022 the security firms Dragos and Mandiant analysed a complete attack toolkit — Dragos called it PIPEDREAM, Mandiant INCONTROLLER — built by a state-backed group to find and take over industrial controllers. It was caught before it was ever used. On April 13, 2022, four US agencies published a joint advisory, AA22-103A. By Dragos’s count it is the seventh known piece of ICS-specific malware, and the first found before an attack.

The toolkit is modular: some parts get a foothold on Windows and gain deep access through a signed-but-flawed driver, while others speak the industrial protocols CODESYS, Modbus, OPC UA and Omron FINS to scan, log into, reprogram or crash controllers. It came with modules for Schneider Electric and Omron equipment. Dragos assesses with high confidence that a state built it and tracks the developer as CHERNOVITE; no country was named, and Mandiant called its links to Russia circumstantial.

Target
No real victim; Dragos assessed likely targets as liquefied-natural-gas and electricity sites
Attributed to
CHERNOVITE (state-sponsored) (Dragos's name for the developer; no country has been named; Mandiant called links to Russia circumstantial)
Way in
Not public
Protocols
CODESYS, Modbus, OPC UA, Omron FINS
Systems attacked
Schneider Electric and Omron PLCs and servo drives, and any OPC UA server; via CODESYS, Modbus, OPC UA and Omron FINS
6 sources
  1. Joint US advisory AA22-103A: APT tools targeting ICS/SCADA devices
  2. Dragos whitepaper: PIPEDREAM, CHERNOVITE's ICS malware
  3. Dragos blog: CHERNOVITE's PIPEDREAM
  4. Dragos: the CHERNOVITE threat group
  5. Mandiant: INCONTROLLER state-sponsored ICS attack tools
  6. MITRE ATT&CK: INCONTROLLER (S1045)

2020Ransomware

EKANS

Windows processes on the kill list, some of them industrial (FireEye)
1,000+
sectors Unit 42 named, from energy to healthcare
5

EKANS (the word ‘snake’ backwards) is ransomware that appeared in 2020. It runs on ordinary Windows computers, so it cannot reprogram the controllers that run machinery. Instead it goes after the Windows PCs operators use to watch and command a plant: the screens known as HMIs, the databases called historians, and licence servers. Before encrypting their files, it stops a hard-coded list of programs so the files are no longer locked.

The security firm FireEye found that list targets over 1,000 processes, some of them industrial software from vendors such as General Electric and Honeywell. EKANS also deletes the backup copies Windows keeps. How operators were first breached was never made public; EKANS is the payload dropped at the end. No group or state has been named. MITRE’s ATT&CK, citing press reports, links an EKANS infection to a temporary production loss at a Honda plant in June 2020.

Target
Industrial organizations in several sectors, from energy to manufacturing (Unit 42)
Attributed to
Not attributed (Criminal ransomware; no government or security firm has named an operator)
Way in
Not public
Systems attacked
Windows PCs that run the control room — HMIs, historians and licence servers — not the controllers themselves
4 sources
  1. MITRE ATT&CK: EKANS (S0605)
  2. Palo Alto Networks Unit 42: EKANS ransomware threat assessment
  3. Fortinet: EKANS ransomware targeting OT/ICS systems
  4. FireEye/Mandiant: Ransomware Against the Machine

2017Destruction

TRISIS / TRITON

that the targeted refinery was shut down (CISA)
several days
US electric utilities the same actors probed in 2019 (Treasury)
20

In 2017, attackers reached the safety system of a petrochemical plant in the Middle East — the independent controllers meant to force a process into a safe state before it turns dangerous. The malware, known as TRISIS or TRITON, was built for the plant’s Schneider Electric Triconex controllers. It spoke TriStation, their undocumented protocol, which the attackers had reverse-engineered, and wrote a hidden backdoor into a controller’s memory to alter its safety logic.

US agencies have not said how the attackers first broke in; they reached the engineering workstation that programs the controllers and ran a tool disguised as the vendor’s own software. During the operation some controllers tripped and shut the plant down for several days, which is how the malware was found. In 2018 FireEye tied the intrusion to a Russian state institute, TsNIIKhM, with high confidence; the US sanctioned it in 2020. Dragos tracks the operator as XENOTIME.

Target
A petrochemical plant in the Middle East (US agencies say only 'a foreign oil refinery')
Attributed to
TsNIIKhM (Russian state institute) (US sanctions name this institute; Dragos tracks the operator as XENOTIME; FireEye assessed it with high confidence)
Way in
Not public
Protocols
TriStation
Systems attacked
Schneider Electric Triconex safety controllers (a safety instrumented system, or SIS), via the undocumented TriStation protocol
6 sources
  1. Mandiant: Attackers Deploy New ICS Attack Framework TRITON
  2. FireEye: TRITON attribution to a Russian state institute
  3. US Treasury: sanctions on TsNIIKhM over the Triton attack
  4. CISA advisory AA22-083A: TRITON techniques and the refinery shutdown
  5. CISA ICS advisory: Schneider Electric Triconex Tricon
  6. Dragos: the XENOTIME threat group (TRISIS)

2016Disruption

Industroyer / CRASHOVERRIDE

power cut to part of Kyiv (ESET)
~1 h
grid protocols the malware could speak
4

On December 17, 2016, part of Kyiv lost power for about an hour. The malware behind it, analyzed in 2017, was named Industroyer by ESET and CRASHOVERRIDE by Dragos. It was the first malware built to control grid equipment directly: instead of a person clicking through remote-control tools, its own modules spoke the grid’s standard protocols (IEC 60870-5-101, IEC 60870-5-104, IEC 61850 and OPC DA) to open circuit breakers automatically. How the attackers first got in was never established.

A launcher set off the payload at a chosen time; one to two hours later a wiper destroyed files and settings to slow recovery, and a separate tool could disable Siemens SIPROTEC protection relays. The US government attributes the attack to Sandworm (Russia’s GRU); Dragos tracks the operators as ELECTRUM. In 2017, ESET found no code overlap with BlackEnergy and did not attribute it.

Target
A Ukrainian electrical transmission company; part of Kyiv lost power
Attributed to
Sandworm (GRU) (US government attribution; ESET did not attribute it in 2017)
Way in
Not public
Protocols
IEC 60870-5-101, IEC 60870-5-104, IEC 61850, OPC DA
Systems attacked
Substation breakers and relays, via the grid protocols IEC 60870-5-101/104, IEC 61850 and OPC DA
6 sources
  1. ESET: Win32/Industroyer technical analysis
  2. ESET: Industroyer, biggest threat to control systems since Stuxnet
  3. US-CERT: CrashOverride malware alert (TA17-163A)
  4. Dragos: the ELECTRUM threat group
  5. CISA: Sandworm (GRU) threat profile
  6. ESET: Industroyer2, Industroyer reloaded

2015Disruption

BlackEnergy

customers lost power (US DHS)
225,000
to restore power by hand (INL)
~6 h

On December 23, 2015, three Ukrainian regional power companies lost control of their grids within about half an hour of each other, and about 225,000 customers lost power (ESET counted around 230,000 people). It is the first blackout confirmed to have been caused by a cyberattack. Months earlier, spear-phishing emails with macro-laden Office files had planted the BlackEnergy malware on the office networks.

The attackers harvested credentials, then used the utilities’ own VPN and remote-control tools to reach the SCADA systems, where they opened breakers at more than 50 substations by hand. They disabled serial-to-Ethernet converters, wiped PCs with KillDisk, and flooded a call center, so power had to be restored on site in about six hours. The US government later attributed the attack to Sandworm, a unit of Russia’s GRU.

Target
Three regional power distribution companies in Ukraine
Attributed to
Sandworm (GRU) (US government attribution; in early 2016 analysts could not yet name the operators)
Way in
Phishing email, Stolen credentials, VPN access
Systems attacked
SCADA control systems reached by remote-access tools; substation serial-to-Ethernet converters
8 sources
  1. DHS ICS-CERT: cyberattack against Ukrainian critical infrastructure
  2. CISA ICS-CERT alert: BlackEnergy in human-machine interfaces
  3. CISA: Sandworm (GRU) threat profile
  4. Idaho National Laboratory: Ukraine 2015 case study
  5. ESET: BlackEnergy and the SSHBearDoor backdoor
  6. ESET: BlackEnergy trojan strikes again
  7. ESET: what we really know about the Ukrainian power outage
  8. ESET: Sandworm, a tale of disruption told anew

2014Espionage

Havex

known victims worldwide (Kaspersky)
2,800+
victim organizations identified by name
101

Havex, made public in June 2014 and also tracked as Dragonfly or Energetic Bear, was a spying campaign against the energy sector. It reached victims three ways: phishing emails with booby-trapped PDF files, websites rigged to infect visitors, and, most notably, the hacked download pages of at least three small makers of industrial software, whose installers were swapped for versions that also carried Havex. Kaspersky counted more than 2,800 victims worldwide.

Havex was a backdoor that called home and downloaded extra modules. One module searched the network for OPC servers, the Windows middleware that lets software read live data from many controllers, and copied their details back to the attackers; the scanning alone crashed some servers. It stole information but had no sabotage payload. In 2014 analysts disagreed on the source; in 2022 the US government attributed the campaign to Russia’s FSB.

Target
Energy companies and makers of industrial equipment, mostly in the US and Europe
Attributed to
FSB (Russia) (In 2014 vendors saw a likely state actor; the US named Russia's FSB in 2022)
Way in
Phishing email, Compromised website, Supply chain
Protocols
OPC
Systems attacked
OPC servers, the Windows middleware that exposes live plant data to other software
7 sources
  1. CISA ICS-CERT alert: ICS-focused malware (Havex)
  2. CISA: tactics of indicted Russian FSB actors
  3. Symantec: Dragonfly, Western energy companies under threat
  4. Kaspersky: Energetic Bear, more like a Crouching Yeti
  5. Kaspersky: Crouching Yeti spying campaign with 2,800 targets
  6. SecurityWeek: attackers using the Havex RAT against control systems
  7. Netresec: full disclosure of the Havex trojans

2014Destruction

German steel mill

blast furnace left in an undefined state
1

In its 2014 annual report, Germany’s Federal Office for Information Security (the BSI) described a targeted attack on a steel mill that caused heavy physical damage. The agency named no company, location, date, or attacker. The attackers used spear phishing and social engineering to reach the office network, then worked their way step by step into the production networks that run the plant.

After that, individual control components and whole installations failed more and more often, until a blast furnace could not be shut down in a controlled way and was left in an undefined state, causing what the BSI called massive damage. The agency named no products, protocols, or malware, and no cost figure is public. It rated the attackers as very advanced, with detailed knowledge of the control systems, but offered no attribution of any kind.

Target
A steel mill in Germany; the BSI does not name the company or its location
Attributed to
Not attributed (The BSI calls the attackers very advanced but names no one)
Way in
Phishing email
Systems attacked
Not disclosed; the BSI says only that the attack reached industrial components
2 sources
  1. BSI: The State of IT Security in Germany 2014 (German edition)
  2. BSI: The State of IT Security in Germany 2014 (English edition)

2010Destruction

Stuxnet

centrifuges taken out of service at Natanz (ISIS estimate)
~1,000
computers infected worldwide by September 2010
100,000

Stuxnet, found in June 2010, is the first malware known to have damaged physical machines. It spread to about 100,000 computers in more than 150 countries, but it was built to harm one target: an Iranian uranium-enrichment plant that researchers linked to Natanz. Because that plant’s control network had no internet connection, the worm was most likely carried in on a removable drive, then spread on its own using four unknown Windows flaws and the project files of Siemens Step 7 engineering software.

On the controllers, it loaded hidden code onto Siemens S7-300 PLCs and drove centrifuge motors far outside their normal speed, while replaying normal readings so operators saw nothing wrong. An institute estimated that about 1,000 of 8,692 installed centrifuges were taken out of service, though the link to Stuxnet is unproven. No government has confirmed who built it; press reports describe a joint US-Israeli operation, but that attribution is not official.

Target
A uranium-enrichment plant in Iran, linked by researchers to Natanz
Attributed to
Not officially attributed (No government has confirmed it; the attribution rests on press reports)
Way in
Removable media
Protocols
Profibus, Siemens S7
Systems attacked
Siemens S7-300 controllers and their frequency-converter drives, via Step 7 and WinCC software
8 sources
  1. Symantec: W32.Stuxnet Dossier (technical analysis)
  2. Symantec: Stuxnet 0.5, the missing link
  3. CISA ICS-CERT: Stuxnet advisory
  4. CISA ICS-CERT: USB malware targeting Siemens control software
  5. ISIS: did Stuxnet take out 1,000 centrifuges at Natanz?
  6. ISIS: Stuxnet targets frequency-converter drives
  7. Control Global: how the Stuxnet code hijacked a controller
  8. RFE/RL: report on the 'Olympic Games' operation
How far each attack got along the kill chain
NameStage 1: intrusionStage 2: attack on the industrial process
Stuxnet 2010 5 / 8 4 / 5
Havex 2014 7 / 8 0 / 5
German steel mill 2014 2 / 8 3 / 5
BlackEnergy 2015 4 / 8 4 / 5
Industroyer / CRASHOVERRIDE 2016 2 / 8 4 / 5
TRISIS / TRITON 2017 1 / 8 4 / 5
EKANS 2020 0 / 8 2 / 5
Industroyer2 2022 1 / 8 2 / 5
PIPEDREAM / INCONTROLLER 2022 0 / 8 1 / 5
Fuxnet 2024 1 / 8 4 / 5
FrostyGoop 2024 4 / 8 3 / 5

Each bar counts the steps of a stage that public reports describe for the attack. A short bar can also mean that a step is not documented.

How to read the cases

Each article starts with the record of the vulnerability: its CVE number, the score from the US National Vulnerability Database, and the dates from the first report to the fix and the first attacks. Below that, the article explains how the flaw worked and what happened next, with charts of the figures that public reports give.

The CVSS score rates how severe a vulnerability is, from 0 to 10. It does not say how often it was used in attacks. Some of the most damaging cases here have medium scores.

How a vulnerability gets on this list

This is not a database of every vulnerability: tens of thousands receive a CVE number each year. Like a list of the biggest financial crises, it keeps only the cases that shook the whole system. A vulnerability is listed only if it meets all three basic conditions and at least two of the four magnitude criteria.

Basic conditions

  1. A specific flaw in a widely used product or component, with a public record: a CVE number or a vendor advisory. Malware counts through the flaw it used.
  2. Many independent operators affected, in many countries, not the customers of a single company.
  3. Documented by primary sources: vendor advisories, government agencies, or measurement studies.

Magnitude criteria (at least two)

CriterionMet when
Reachmeasurements found at least 100,000 affected systems, or the flaw sits in a component that runs on at least a tenth of all systems of its kind, such as processors, web servers, or websites
Mass exploitationattacks in the wild hit at least 1,000 organizations or 100,000 systems, or a worm spread on its own
Damagedocumented damage of at least one billion US dollars, outages of critical services such as hospitals, power, or transport, or data of at least ten million people
Extraordinary responsemeasures beyond routine patching: the highest warning level of a national cyber agency, a government emergency directive, fixes in all major operating systems at once, or coordination across industries and countries

A high severity score alone is not enough. Meltdown has a CVSS score of 5.6 and is on the list; many flaws with a score of 10 are not. A case is added when it meets the criteria and its figures are documented, and each case page shows which criteria it meets and why.

Known, but not on the list

These vulnerabilities made headlines but meet fewer than two of the four magnitude criteria.

NameYearMain CVEWhy not
xz Utils backdoor2024CVE-2024-3094Found before it reached stable releases of the major Linux distributions; no known attacks, no damage. It meets only the response criterion: a near miss.
TunnelVision2024CVE-2024-3661Lets an attacker in the same local network route traffic around a VPN; no mass attacks, no reported damage, no extraordinary response.

Text updated October 23, 2026.