SolarWinds, 2020: the attack came through the build system.
Malicious code was inserted into SolarWinds Orion updates through a compromised build system, not the source repository, and shipped to customers as legitimate software updates. What SolarWinds disclosed and what CISA advised.
Last updated Published by TryTrustableNot legal advice
SolarWinds disclosed on 14 December 2020 that a vulnerability had been inserted into its Orion products through a compromise of the Orion software build system, and was present in updates released between March and June 2020. It estimated that fewer than 18,000 customers had installed an affected version. CISA's advisory AA20-352A described it as a supply chain compromise used against government agencies, critical infrastructure and private companies. In October 2023 the SEC charged SolarWinds and its chief information security officer with misleading investors about cybersecurity; those were allegations, which the defendants contested.
What happened
| Date | What happened |
|---|---|
| March to June 2020 | Orion updates released in this period contain the inserted code (SolarWinds 8-K). |
| 13 December 2020 | SolarWinds writes to about 33,000 active Orion maintenance customers with mitigation steps. |
| 14 December 2020 | SolarWinds files a Form 8-K with the SEC describing the compromise. |
| 17 December 2020 | CISA publishes advisory AA20-352A. |
| 30 October 2023 | The SEC charges SolarWinds and its CISO with fraud and internal control failures (allegations). |
Root cause
SolarWinds' own filing is precise about where the compromise happened (SolarWinds Form 8-K): the vulnerability "was introduced as a result of a compromise of the Orion software build system and was not present in the source code repository of the Orion products." The malicious code was not in the repository at all: it was added somewhere between source and shipped release.
CISA's advisory AA20-352A names the affected versions (including Orion Platform 2019.4 HF5 and 2020.2 HF1), the malicious DLL, and the SUNBURST malware it delivered, with initial compromise from at least March 2020. It also records that this was not the only way in: CISA saw evidence of other initial access vectors, including password guessing, password spraying and inappropriately secured administrative credentials reached through external remote access services, and abuse of SAML tokens after the actor compromised a SAML signing certificate.
For a software supplier the lesson is about the integrity of the pipeline from commit to release. For a customer it is about trust in a vendor's updates: a legitimate update from a known supplier was the carrier.
Impact and regulatory outcome
- Reach: SolarWinds had over 300,000 customers; it wrote to about 33,000 Orion maintenance customers and estimated that fewer than 18,000 had installed an affected version.
- Government response: CISA published AA20-352A on 17 December 2020, addressed to government agencies, critical infrastructure and private sector organisations.
- SEC: on 30 October 2023 the SEC charged SolarWinds and its CISO, alleging they overstated the company's cybersecurity practices and understated known risks from its October 2018 IPO to the December 2020 announcement. These were allegations and were contested; this page does not track the later course of the litigation, so check the SEC's case materials for its current status.
The controls that address it
| Control | SOC 2 criteria | ISO 27001:2022 Annex A |
|---|---|---|
| Protected branches, required reviews and required status checks | CC8.1 | A.8.32, A.8.4 |
| Signed commits and an accountable owner for sensitive code (CODEOWNERS) | CC8.1 | A.8.4, A.8.25 |
| Build system hardening and integrity checks between source and release | CC8.1, CC7.1 | A.8.25, A.8.31 |
| Privileged access kept few, strong and reviewed | CC6.1, CC6.3 | A.8.2, A.8.5 |
| Supplier and ICT supply chain risk management | CC9.2 | A.5.19, A.5.21 |
| Monitoring for anomalous activity from trusted software | CC7.2, CC7.3 | A.8.16 |
SOC 2 references are the 2017 Trust Services Criteria (points of focus revised 2022); Annex A references are ISO/IEC 27001:2022. These are the usual mappings: agree yours with your auditor.
How TryTrustable checks these controls
- Source and change control: the GitHub integration checks default and long-lived branch protection, required pull-request reviews, required status checks, a CI workflow, CODEOWNERS, signed commits required, independent approval on merged pull requests, and two-factor authentication for the organisation.
- Code entering the pipeline: the SDK runs static analysis, secret scanning and dependency checks in your CI, with a pre-push gate.
- Privileged accounts: Okta and Google Workspace super-admin counts, GCP project owner count and personal accounts holding Owner or Editor, AWS root account MFA.
- Suppliers: a vendor register where you record suppliers, what they access and when you reviewed them. Entries are maintained by your team; TryTrustable does not score or monitor vendors automatically.
TryTrustable does not verify the integrity of build artefacts or compare shipped binaries with source. Branch and review controls protect the repository; the SolarWinds case shows the build system needs its own controls as well.
These are the checks TryTrustable runs today. None of them is a claim about what would have happened in this incident: they test whether the control is in place in your environment, continuously, and record the result as audit evidence.
Sources
- CISA advisory AA20-352A: Advanced persistent threat compromise of government agencies, critical infrastructure, and private sector organizations (17 December 2020)
- SolarWinds Corporation, Form 8-K filed 14 December 2020
- SEC press release 2023-227: SEC charges SolarWinds and chief information security officer (30 October 2023)
Every figure on this page is taken from the official documents listed here, read in October 2026. Regulatory findings quoted are the regulator's; where a company neither admitted nor denied them, or where proceedings are still open, the page says so. Not legal advice.
More case studies: all breach case studies · Research
The things people ask us
How was SolarWinds Orion compromised?
Through its build system. SolarWinds disclosed that the malicious code was introduced by a compromise of the Orion software build system and was not present in the source code repository, so it reached customers in legitimate updates released between March and June 2020.
How many organisations installed the affected SolarWinds updates?
SolarWinds estimated in December 2020 that fewer than 18,000 customers had installed an affected version of Orion, out of about 33,000 active Orion maintenance customers.
Was the Orion update the only way the attackers got in?
No. CISA's advisory AA20-352A reports other initial access vectors, including password guessing, password spraying and poorly secured administrative credentials on external remote access services.
What can a SaaS company learn from SolarWinds?
Protect the path from commit to release, not just the repository, and keep privileged access few and strongly authenticated. As a customer, record which suppliers' software runs in your environment and what it can reach.
Check these controls in your own environment.
We connect GitHub and one cloud account in a demo and show which of these checks pass, with the evidence an auditor would ask for.