CentrioleBlog
Back to blog

Supply Chain

Software Composition Analysis Is Not Supply Chain Security

SCA and supply chain security share vocabulary. They do not share a threat model. Here is what each actually protects against in 2026.

Date

Reading time

8 min read

Author

Centriole Research
Share
Software Composition Analysis Is Not Supply Chain Security

Software Composition Analysis and supply chain security share vocabulary. They occasionally share a sales deck. They do not share a threat model.

Understanding the difference is the first step toward knowing what your organization is actually protected against.

Three stats showing CVE exposure, unused SBOMs, and third-party breach origin
Three stats showing CVE exposure, unused SBOMs, and third-party breach origin

The Problem SCA Was Built to Solve

SCA emerged in the mid-2000s to answer a specific question: which open source libraries does our application use, and do any of them have known vulnerabilities? The answer came as a CVSS score, a CVE ID, a dependency name, and a recommended upgrade path. For a decade and a half, that was enough.

Tools in this category (Snyk, Grype, Trivy, FOSSA, Black Duck, and others) became mature and widely deployed. Their value remains real: find the high-severity CVE in your package.json before a customer pen tester does. That job is not going away. It is no longer the whole job.

The threat model shifted around 2020, accelerated through SolarWinds, and has not stopped. The surface expanded from vulnerabilities in code you use to malicious code disguised as code you want. Typosquatting, dependency confusion, namespace hijacking, and hijacked maintainer accounts are not CVE-eligible events. No CVE is assigned when an attacker registers a near-match package name and ships a credential stealer. Traditional SCA has no match because it was not designed for a world where the registry itself is an attack vector.

That is a design gap, not a missing feature.

What the Expanded Attack Surface Looks Like

The 2026 supply chain threat landscape spans four attack classes. Each needs different detection logic.

Four attack classes: known CVEs, unmaintained deps, malicious packages, AI and container risk
Four attack classes: known CVEs, unmaintained deps, malicious packages, AI and container risk

Class 1: Vulnerability in the dependency tree. Traditional SCA territory. A CVE publishes against a library you use. You prioritize and patch. Detection is solved. Prioritization is not. Datadog’s 2026 State of DevSecOps found 87% of organizations running at least one service with a known exploitable vulnerability. Teams are not unaware. They are drowning. A tool that surfaces hundreds of findings without exploitability, CISA KEV status, and reachability is a backlog generator.

Class 2: Unmaintained dependency. The same Datadog report found 42% of services depending on libraries nobody actively maintains. Future CVEs will not get patches. Point-in-time scans miss this unless end-of-life flagging is explicit. Most SCA products do not make that central.

Class 3: Intentionally malicious package. Typosquatting, dependency confusion, namespace impersonation, and hijacked maintainer accounts all work the same way: get malicious code into the tree under a name that looks legitimate. No CVE. No CVSS. The package passes every SCA scan that only checks vulnerability databases.

Recent campaigns we analyzed, including Shai-Hulud, express-plugin, and LiteLLM, follow that pattern: stealers that fire on install, CI poisoners that wait for CI=true, persistence implants, and version 99.0.0 dependency confusion packages built to beat private registry pins.

Class 4: AI model and container risk. Teams pull HuggingFace models with unclear licenses, build on unaudited base images, and integrate AI dependencies whose training provenance is undocumented. None of that lives in package.json. A dependency-tree scan does not know it exists.

Five Structural Limits of Traditional SCA

The distinction is not mainly about feature checklists. It is about what each system is designed to know, and what it does with that knowledge.

Five structural limits of traditional SCA
Five structural limits of traditional SCA

1. CVSS is severity, not prioritization. A 9.8 score means theoretical severity. It does not say whether your app calls the vulnerable path, whether an exploit is active in the wild, or whether a patch exists. Alert fatigue is a predictable output of equal-urgency queues.

CVSS-only backlog versus layered CVSS EPSS KEV reachability prioritization
CVSS-only backlog versus layered CVSS EPSS KEV reachability prioritization

Genuine prioritization layers CVSS, EPSS, CISA KEV, and reachability. “This CVE is in a library you import” is theoretical. “This CVE is in a function every authenticated request calls” is operational. Most SCA tools do not make that distinction.

2. Scans, not SBOM lifecycle records. Traditional SCA produces findings. It rarely produces a structured, versioned, diffable SBOM that travels with the artifact. Regulators are changing that from optional to mandatory: the EU CRA, EO 14028 / SSDF, FDA 524B, and BSI TR-03183. A one-shot SBOM in a compliance folder cannot support a 24-hour active-exploitation report.

3. No financial risk language. Boards and CFOs ask for dollars. SEC cyber disclosure rules treat “material” as a financial concept. A CVSS 8.1 in a non-critical system may not be material. A CVSS 6.5 in PCI-scoped authentication may be. Traditional SCA has no path to Annualized Loss Expectancy or board-ready exposure.

4. No multi-framework compliance mapping. PCI DSS, HIPAA, NIS2, DORA, CMMC, FedRAMP, and CRA require identified, tracked, remediable findings plus inventory documentation. An SCA finding list forces compliance teams to translate manually. That translation takes weeks and introduces error.

5. Single-audience output. One finding means four jobs: the developer needs the fix and PR path; the analyst needs exploitability; the auditor needs control mapping; the CISO needs financial exposure. Traditional SCA produces one format. A supply chain platform routes the same underlying finding to each audience.

Side by Side

Individual tools vary. The structural pattern holds.

CapabilityTraditional SCASupply chain security platform
What it scansSource and direct dependenciesSource, containers, registries, AI models
Dependency depthDirect; transitive coverage variesFull transitive resolution across layers
Malicious package detectionNot designed for thisTyposquats, namespace hijack, dependency confusion
SBOM generationRarely native; often bolt-onNative CycloneDX / SPDX on every scan
Vulnerability prioritizationCVSS primarilyCVSS + EPSS + CISA KEV + reachability
Financial risk quantificationNoneALE and exposure language per finding
Compliance mappingNone or single-frameworkMulti-framework control mapping
Alert volumeHigh, equal urgencyPrecision-filtered actionable subset
Developer workflowIDE plugin / PR commentsTicketing and chat into eng workflows
Continuous monitoringOn-demand or scheduledEvery build, every push, every new advisory

Where Each Tool Belongs

This is not an argument that SCA is obsolete. It is an argument that the category has a defined scope, and that scope no longer covers the full 2026 threat model. The categories are not substitutes.

Where SCA fits well versus where a supply chain platform is required
Where SCA fits well versus where a supply chain platform is required

The question is not “SCA or supply chain platform.” The question is: does your current tooling cover the full threat model? For most organizations in 2026, the honest answer is no.

Why the Gap Stops Being Optional

For teams still treating supply chain security as optional best practice, the window is closing.

Across markets, regulators and buyers are converging on the same demand: know what you ship, keep that inventory current, prioritize real risk, and prove it when asked. Point-in-time CVE lists and static compliance folders do not meet that standard.

Financial exposure follows. Penalties, contracts, and breach costs increasingly turn on whether you can demonstrate control over what you depend on, not whether a scanner once produced a finding.

No traditional SCA scan tells a compliance or leadership team what an open critical backlog means in their control language, reporting obligations, or board narrative. That translation requires a layer the SCA category was not designed to provide. For inventory and program design context, see also SBOM vs TPRM and What Is an SBOM?.

The Bottom Line

Traditional SCA answered the right question for its era: are there known vulnerabilities in the open source libraries our application uses? That question still matters. Those tools still belong in the stack.

The question the current environment demands is broader: do we have a complete, continuously updated inventory of every component we depend on, across every artifact type we ship, with detection, prioritization, financial quantification, and evidence mapping that tells each audience what a finding means?

That is not an SCA question. It is a supply chain security question. Organizations that treat the two as interchangeable keep CVE scanners, unused SBOMs, and a threat model their tooling was never designed to see.

If your stack still stops at known-CVE detection while malicious packages, unmaintained libraries, and living inventory requirements sit outside coverage, see how Centriole closes that gap.

Sources

  1. Datadog, State of DevSecOps / DevOps
  2. Cloudsmith, 2026 Artifact Management Enforcement Gap Report
  3. ENISA, SBOM Adoption State of Play 2026
  4. SecurityScorecard, 2025 Global Third-Party Breach Report
  5. CybelAngel, Every Vendor Is a Vector
  6. Verizon, 2025 Data Breach Investigations Report (DBIR)
  7. European Union, Cyber Resilience Act (Regulation EU 2024/2847)
  8. EU NIS2 Directive
  9. EU DORA
  10. FDA cybersecurity / Section 524B guidance
  11. NIST SSDF / EO 14028
  12. CISA Known Exploited Vulnerabilities Catalog
  13. FIRST CVSS and FIRST EPSS