ESL Logo SBOMator
๐Ÿ›ก๏ธ
Security Briefing ยท March 2026

Why the Trivy Supply Chain Attack Could Never Happen with ESL SBOMator

The most sophisticated attack on a security tool to date โ€” and why our architecture makes it impossible.

5
Attack Phases
0
Apply to SBOMator
47+
npm Packages Hit
The Attack

What Happened to Trivy?

A 5-phase attack turned the world's most popular security scanner into a weapon

1

Repository Takeover

Attackers compromised the aqua-bot service account and pushed backdoored v0.69.4 binaries to GitHub Releases, Docker Hub, GHCR & ECR.

2

GitHub Action Tag Poisoning

Force-pushed 75 of 76 version tags in trivy-action. Any workflow referencing @v0.28.0 silently ran attacker code.

3

Credential Theft from CI/CD Memory

Malware read /proc/<pid>/mem on runners, stealing AWS keys, SSH keys, K8s tokens, Docker creds, TLS keys โ€” encrypted with AES-256 + RSA-4096.

4

Persistent Backdoor

Installed sysmon.py systemd service on dev machines polling a blockchain C2 every 50 minutes โ€” resistant to takedown.

5

Self-Propagating npm Worm

CanisterWorm compromised 47+ npm packages in under 60 seconds, turning every npm install into a propagation vector.

Defense #1

Not a GitHub Action = Zero Tag Poisoning Surface

The core attack vector simply does not exist

๐Ÿ’€

Trivy (Vulnerable)

Runs as a GitHub Action inside CI/CD pipelines. References mutable version tags (@v0.28.0). Attackers force-pushed 75 tags to run malicious code โ€” no workflow file changes needed.

๐Ÿ›ก๏ธ

SBOMator (Immune)

Runs as a standalone commercial application on your machine. No GitHub Action, no mutable tags, no automated pipeline execution. The entire attack vector doesn't exist.

Defense #2

Runs Outside CI/CD = No Credential Theft

SBOMator never touches your pipeline secrets

๐Ÿ”“

What Trivy Stole

Read /proc/<pid>/mem on CI runners to harvest:
AWS keys ยท GCP/Azure creds ยท SSH keys ยท K8s tokens ยท Docker creds ยท TLS private keys ยท DB passwords ยท Crypto wallets

๐Ÿ”’

SBOMator's Position

Runs on your own workstation or a dedicated analysis machine. Never executes inside a CI/CD runner. Has zero access to pipeline secrets, runner memory, or cloud credentials. Architecturally impossible.

๐Ÿ—๏ธ

Architecture Comparison

Trivy: CI Runner โ†’ Trivy Action โ†’ reads /proc/mem โ†’ SECRETS STOLEN SBOMator: Your PC โ†’ SBOMator App โ†’ scans source โ†’ SBOM report

Defense #3

Commercial Distribution = No Repository Takeover

Controlled release channels eliminate the hijacking risk

โš ๏ธ

Trivy's Problem

Open-source with automated release pipelines. Compromised service account โ†’ backdoored binaries auto-distributed to GitHub Releases, Docker Hub, GHCR, and Amazon ECR. No human review.

โœ…

SBOMator's Model

Commercial product distributed through controlled channels. No public service account to hijack, no automated release pipeline, no container registries for attackers to tamper with.

๐Ÿ”

Built-In Supply Chain Hardening

SBOMator secures its own supply chain: exact version pinning, lock files, SHA-256 hash verification, self-SBOM, Dependabot with manual PR review โ€” no auto-merge.

Defense #4

On-Demand Tool = No Persistent Backdoor

SBOMator runs, reports, and exits โ€” no background services

๐Ÿ‘ป

Trivy's Backdoor

Installed sysmon.py as a systemd service on developer machines. Polled a blockchain canister (ICP) every 50 minutes for C2 instructions. Takedown-resistant.

๐Ÿงน

SBOMator's Design

A GUI/CLI application that runs on demand. Generates SBOM โ†’ produces report โ†’ exits. No system services installed. No background processes. No elevated privileges required.

โˆž
Trivy backdoor uptime
0
SBOMator background processes
50 min
Trivy C2 beacon interval
The Irony

SBOMator Detects the Attack That Hit Trivy

Our Supply Chain Threat Intelligence module catches the aftermath

๐Ÿ”Ž

IOC Auto-Checking

Auto-downloads IOC lists from Wiz Security Research. Compares every package name + version against known malicious releases. Flags matches as CRITICAL.

๐Ÿ“ฆ

Malicious Package Detection

The CanisterWorm (Phase 5) compromised 47+ npm packages. SBOMator's triple scanner (Syft + CDXgen + OSV) identifies every one in your dependency tree.

๐Ÿ“Š

SBOM Diff Over Time

Compare SBOMs before and after to catch suspicious version bumps โ€” exactly how Shai-Hulud and CanisterWorm propagated through version manipulation.

Summary

Complete Attack Phase Mapping

Every phase blocked โ€” and we detect the damage left behind

Attack PhaseWhat HappenedAffects SBOMator?Why Not
Phase 1
Repo Takeover
Hijacked service account pushed backdoored binariesโŒ IMMUNECommercial distribution, no public repo to hijack
Phase 2
Tag Poisoning
75 GitHub Action tags repointed to malicious commitsโŒ IMMUNENot a GitHub Action โ€” zero attack surface
Phase 3
Credential Theft
Read CI runner memory, stole all cloud secretsโŒ IMMUNENever runs inside CI/CD runners
Phase 4
Persistent Backdoor
Installed systemd service with blockchain C2โŒ IMMUNEOn-demand tool, no services installed
Phase 5
npm Worm
47+ packages compromised in 60 secondsโŒ IMMUNEPython-based with pinned deps โ€” and detects it!
The Fundamental Difference

Trivy was compromised because it operates as an open-source GitHub Action running inside CI/CD pipelines with access to secrets. ESL SBOMator is a standalone commercial tool that runs outside the pipeline โ€” architecturally immune to every phase, and capable of detecting the aftermath.

Engineering Software Lab (ESL)

๐Ÿ“ Ha-Nagar 24 A, Hod Hasharon, Israel

๐Ÿ“ž +972 9 8855803

โœ‰๏ธ sales@eswlab.com