CriticalCVE-2026-33634

    Trivy ecosystem supply chain briefly compromised (CVE-2026-33634)

    Published In CISA KEV since Sources: OSV, CVE.org

    What is affected, what to do

    Trivy is a security scanner. On March 19, 2026, a threat actor used compromised credentials to publish a malicious Trivy v0.69.4 release, force-push 76 of 77 version tags in `aquasecurity/trivy-action` to credential-stealing malware, and replace all 7 tags in `aquasecurity/setup-trivy` with malicious commits.

    The vulnerability is being actively exploited; treat it as a priority. Update Aquasecurity Setup-trivy to version 0.2.6, Aquasecurity Trivy-action to version 0.35.0. Immediate actions, mitigation and detection rules are in the runbook below.

    Affected
    • Aquasecurity Setup-trivy lt *..0.2.6
    • Aquasecurity Trivy-action lt *..0.35.0
    • Aquasecurity Trivy eq 0.69.4..0.69.4
    • BerriAI LiteLLM gte 1.82.7, <= 1.82.8..*
    • Team-telnyx Telnyx gte 4.87.1, <= 4.87.2..*
    Fixed in
    • Aquasecurity Setup-trivy 0.2.6
    • Aquasecurity Trivy-action 0.35.0

    Not sure whether and how you are affected? Ask a question about this vulnerability

    Metrics

    9.4

    Priority

    XIEM Effective CVSS: highest available CVSS rating from NVD and vendor data.

    Source: NVD, CVSS v4

    8.8

    CVSS v3

    Severity High on the scale from 0 to 10.

    Source: OSV, CVE.org

    59.7 %

    EPSS score

    High — model estimates ≥ 50% chance of real-world exploitation within 30 days.

    Source: FIRST EPSS, percentile 99.13

    Show all metrics
    Severity
    Critical
    Priority (0–325)

    The priority score is a consolidated metric that condenses several individual signals into a single, action-guiding ranking: technical severity (CVSS), exploitation likelihood (EPSS), known-exploited status (KEV) and the context of the affected asset. The aim is to answer the only truly important question in vulnerability management: what first?

    Read in glossary
    241.07 Methodology
    Exploit maturity

    An exploit is code or a technique that specifically uses a concrete vulnerability to force unintended behaviour — such as executing code or escalating privileges. It is the tool that turns a theoretical flaw into a practical attack.

    Read in glossary
    actively exploitedSource: VulnCheck KEV (opens in a new tab), CIRCL Sightings How we classify
    XIEM Effective CVSS

    XIEM® is the tiered managed-security operating model from NEOSEC and a registered trademark of NEOSEC GmbH. It extends classic SIEM — the central collection, normalisation and correlation of security-relevant events — with endpoint forensics, network visibility and deception technology, and consolidates them into three building tiers: Sentry, Orchestrate and Command.

    Read in glossary
    9.4 Methodology
    CVSS v3

    CVSS is the globally established, open standard for assessing the technical severity of a vulnerability on a scale from 0 to 10. It describes how easily a flaw can be exploited and what damage it can cause — but not how likely its actual exploitation is. CVSS and the complementary EPSS deliberately answer different questions.

    Read in glossary
    8.8
    CVSS v4

    CVSS is the globally established, open standard for assessing the technical severity of a vulnerability on a scale from 0 to 10. It describes how easily a flaw can be exploited and what damage it can cause — but not how likely its actual exploitation is. CVSS and the complementary EPSS deliberately answer different questions.

    Read in glossary
    9.4
    EPSS score

    The EPSS score is the absolute model output for an individual vulnerability: the estimated probability of real-world exploitation within the next 30 days, expressed as a value between 0 and 1 (i.e. 0 % to 100 %). A score of 0.42 means „the model estimates a 42 % chance of real-world exploitation within 30 days“.

    Read in glossary
    59.7 %
    High — model estimates ≥ 50% chance of real-world exploitation within 30 days.
    EPSS percentile

    The EPSS percentile is the relative position of a vulnerability within all EPSS-scored CVEs, expressed as a value between 0 and 1. A percentile of 0.90 means „this CVE has a higher EPSS score than 90 % of all other scored CVEs“. Unlike the EPSS score, it is not a probability — but a positioning within a ranking.

    Read in glossary
    99.13
    Critical — this CVE ranks in the top fifth of all CVEs scored today (rank ≥ 80%).
    KEV status

    The KEV catalogue is a list maintained by the US authority CISA of vulnerabilities for which active exploitation in the wild has been confirmed. It answers not the question „how severe?“ but „is it already being attacked?“ — thereby sharply prioritising patching.

    Read in glossary
    Actively exploited
    Published
    In CISA KEV since

    The KEV catalogue is a list maintained by the US authority CISA of vulnerabilities for which active exploitation in the wild has been confirmed. It answers not the question „how severe?“ but „is it already being attacked?“ — thereby sharply prioritising patching.

    Read in glossary
    CISA assessment (SSVC)
    Exploitation: active · not automatable · Technical impact: total
    Source: CISA Vulnrichment, as of 24 March 2026
    CWE

    CWE is a catalogue of typical weakness types in software and hardware — such as flawed input validation, unsafe memory handling or poor authentication. Where a CVE names a concrete vulnerability in a concrete product, a CWE describes the underlying class of defect.

    Read in glossary
    CWE-506

    Response and mitigation

    Why act now?

    Prioritisation rationale

    This is a supply-chain compromise of a widely deployed security scanner, not a conventional code flaw. It abuses trust in mutable version tags to land credential-stealing code directly inside CI/CD environments that hold highly privileged secrets. The scoring reflects a network-reachable attack with low prerequisites and full confidentiality, integrity and availability impact. Further exploitation likelihood is moderately elevated, and CISA does not flag known ransomware use. What matters most is your own exposure. If any affected workflow ran with a tag reference during the window, assume credentials are gone and run it as a top-priority incident, because stolen cloud and signing keys enable follow-on attacks against production and customers. Organisations with no Trivy usage, or with consistent SHA pinning, can drop this to hardening work once the inventory has been verified.

    1. Runbook step 1

      Immediate response (0-24 h)

      • Scope the blast radius: Search every repository in your GitHub org for aquasecurity/trivy-action and aquasecurity/setup-trivy, e.g. gh search code "aquasecurity/trivy-action" --owner <org> or grep -rE "aquasecurity/(trivy-action|setup-trivy)@" .github/workflows/. Any reference to a version tag rather than a full commit SHA counts as potentially compromised if the workflow ran on 19–20 March 2026.
      • Treat secrets as exposed and rotate them atomically: This applies to every pipeline that may have run Trivy v0.69.4, trivy-action 0.0.1–0.34.2, or setup-trivy 0.2.0–0.2.6 (before 0.2.6 was recreated). Revoke and reissue all reachable secrets: GitHub PATs and App keys, AWS/Azure/GCP credentials, SSH keys, registry tokens, database passwords and signing keys. Revoke everything first, then reissue. The vendor's own non-atomic rotation is what let the attacker back in.
      • Check for the exfiltration artefact: Look for any repository named tpcp-docs in your GitHub org. Its presence indicates the fallback exfiltration path fired and secrets were successfully stolen. If you find one, declare an incident and start the NIS2 early-warning clock (24 h).
      • Purge malicious artefacts: Remove Trivy v0.69.4 (Go binary and container image) from internal registries, artefact proxies (Artifactory/Nexus), runner caches and base images. Move to the known-safe versions: Trivy 0.69.2 or 0.69.3, trivy-action 0.35.0, setup-trivy 0.2.6 (recreated). Pin each one by full commit SHA or image digest.
      • Check downstream packages: The context lists BerriAI LiteLLM 1.82.7/1.82.8 and telnyx 4.87.1/4.87.2 as affected. Search lockfiles, SBOMs and package mirrors for these versions. Remove any hits and treat the environments that ran them as compromised runners. Look up the fixed versions in the vendor advisory.
      • Rebuild self-hosted runners: Do not try to clean persistent runners that executed affected versions. Redeploy them from a trusted image.
    2. Runbook step 2

      Mitigation layers

      • Configuration / supply chain: Reference GitHub Actions only by 40-character commit SHA (uses: aquasecurity/trivy-action@<sha> # v0.35.0). At org level, restrict "Allowed actions" to an allowlist of pinned SHAs. Enforce pinning in PR gates with tools such as zizmor or the OpenSSF Scorecard "Pinned-Dependencies" check.
      • IAM / least privilege: Replace long-lived cloud secrets in CI with OIDC federation and short-lived tokens, scoped to a specific repo and branch. Set GITHUB_TOKEN to contents: read by default via permissions:. Never expose deploy secrets to security-scan jobs.
      • Network segmentation: Put CI runners behind an egress allowlist covering package registries, the GitHub API and your own registry. On GitHub-hosted runners, use an egress filter such as Harden-Runner in block mode. On self-hosted runners, enforce a default-deny proxy on the runner VLAN.
      • Artefact integrity: Pull Trivy binaries and images only through an internal mirror with digest pinning (aquasec/trivy@sha256:...). Verify signatures or checksums before promotion, and disable auto-updates to "latest" for security tooling.
      • Runner hardening: Use ephemeral runners (one job per VM or container). Block cross-process memory access with kernel.yama.ptrace_scope=2 and run containers without CAP_SYS_PTRACE, which makes it harder to scrape secrets from runner process memory.
    3. Runbook step 3

      Detection rules

      • GitHub audit log: Hunt for repo.create events matching tpcp-docs, any unexpected repository creation by service accounts or PATs, and token use from unfamiliar IP ranges since 1 March 2026. KQL shape: GitHubAuditLog | where Action == "repo.create" and Repository has "tpcp-docs".
      • Workflow run logs, 19–20 March 2026: Export logs for jobs that used trivy-action or setup-trivy. Look for unexpected curl/wget calls, base64 blobs, reads of /proc/*/mem or /proc/*/environ, abnormally long scan-step durations, or a downloaded Trivy version 0.69.4.
      • auditd / Sysmon for Linux on self-hosted runners: Watch for reads of runner process memory, e.g. -a always,exit -F arch=b64 -S open,openat -F dir=/proc -F success=1 -k proc_mem, filtered on mem/environ. Alert when the accessing process is trivy or a non-build-tool child of Runner.Worker.
      • Network telemetry (Zeek/Suricata/proxy): Flag outbound connections from runner subnets to destinations outside the egress allowlist. Prioritise DNS queries or TLS SNI for newly registered domains, and large POST bodies shortly after Trivy starts. SPL shape: index=proxy src_zone=ci_runners NOT dest_domain IN (allowlist) | stats sum(bytes_out) by src_ip, dest_domain.
      • Registry / SBOM inventory: Check registry and proxy pull logs for aquasec/trivy:0.69.4 and trivy_0.69.4_*. Scan SBOMs and lockfiles for litellm==1.82.7|1.82.8 and telnyx==4.87.1|4.87.2.

    Detection rules

    No NEOSEC detection rule is available for this vulnerability yet.

    Classification under NIS2 and CRA

    Rule-based classification from exploitation status and severity. It does not replace a case-by-case assessment.

    NIS2

    NIS2 is EU Directive (EU) 2022/2555 to raise the level of cybersecurity across the Union. It substantially broadens obligations compared with the first NIS directive: more sectors, mandatory risk management, staged reporting duties and personal accountability of senior management.

    Read in glossary
    Actively exploited: treat the vulnerability as a priority in vulnerability handling under Art. 21(2)(e) NIS2. If it is exploited in your environment, check the reporting obligation under Art. 23 (early warning within 24 hours).
    CRA

    The CRA is EU Regulation (EU) 2024/2847 setting horizontal cybersecurity requirements for „products with digital elements“ — from industrial controllers and software to connected consumer devices. For the first time manufacturers must ensure security across the entire product lifecycle, handle vulnerabilities and provide security updates.

    Read in glossary
    Since 11.09.2026, manufacturers of affected products with digital elements must report actively exploited vulnerabilities under Art. 14 CRA, with an early warning within 24 hours via ENISA's single reporting platform.
    ISO/IEC 27001

    ISO/IEC 27001 is the internationally leading standard for an information security management system (ISMS). It describes a risk-based, process-oriented framework to systematically plan, implement, review and improve information security.

    Read in glossary
    Control A.8.8, management of technical vulnerabilities: assess relevance to your systems, plan remediation and keep evidence.

    Description

    Trivy is a security scanner. On March 19, 2026, a threat actor used compromised credentials to publish a malicious Trivy v0.69.4 release, force-push 76 of 77 version tags in `aquasecurity/trivy-action` to credential-stealing malware, and replace all 7 tags in `aquasecurity/setup-trivy` with malicious commits. This incident is a continuation of the supply chain attack that began in late February 2026. Following the initial disclosure on March 1, credential rotation was performed but was not atomic (not all credentials were revoked simultaneously). The attacker could have use a valid token to exfiltrate newly rotated secrets during the rotation window (which lasted a few days). This could have allowed the attacker to retain access and execute the March 19 attack. Affected components include the `aquasecurity/trivy` Go / Container image version 0.69.4, the `aquasecurity/trivy-action` GitHub Action versions 0.0.1 – 0.34.2 (76/77), and the`aquasecurity/setup-trivy` GitHub Action versions 0.2.0 – 0.2.6, prior to the recreation of 0.2.6 with a safe commit. Known safe versions include versions 0.69.2 and 0.69.3 of the Trivy binary, version 0.35.0 of trivy-action, and version 0.2.6 of setup-trivy. Additionally, take other mitigations to ensure the safety of secrets. If there is any possibility that a compromised version ran in one's environment, all secrets accessible to affected pipelines must be treated as exposed and rotated immediately. Check whether one's organization pulled or executed Trivy v0.69.4 from any source. Remove any affected artifacts immediately. Review all workflows using `aquasecurity/trivy-action` or `aquasecurity/setup-trivy`. Those who referenced a version tag rather than a full commit SHA should check workflow run logs from March 19–20, 2026 for signs of compromise. Look for repositories named `tpcp-docs` in one's GitHub organization. The presence of such a repository may indicate that the fallback exfiltration mechanism was triggered and secrets were successfully stolen. Pin GitHub Actions to full, immutable commit SHA hashes, don't use mutable version tags.

    Source: OSV (Open Source Vulnerabilities), cvelistv5, NVD (NIST), CISA KEV Catalog, CVE.org (MITRE)

    Affected products

    The following versions are affected. Older releases of the same product line are also vulnerable unless stated otherwise.

    Affected products
    Affected versionsFixed in
    aquasecuritysetup-trivy
    • < 0.2.6
    • 0.2.6
    aquasecuritytrivy
    • 0.69.4
    • —
    aquasecuritytrivy-action
    • < 0.35.0
    • 0.35.0
    BerriAILiteLLM
    • ≥ 1.82.7, <= 1.82.8
    • —
    team-telnyxtelnyx
    • ≥ 4.87.1, <= 4.87.2
    • —
    aquasecsetup-trivy
    • < 0.2.6
    • 0.2.6
    aquasectrivy
    • 0.69.4
    • —
    aquasectrivy_action
    • < 0.35.0
    • 0.35.0
    litellmlitellm
    • 1.82.7
    • 1.82.8
    • —
    • —
    telnyxtelnyx
    • 4.87.1
    • 4.87.2
    • —
    • —
    github actionsaquasecurity/setup-trivy
    • —
    • —
    github actionsaquasecurity/trivy-action
    • —
    • —
    gogithub.com/aquasecurity/trivy
    • 0.69.4
    • —

    Vendors and products

    Weakness classes (CWE)

    • CWE-506Embedded Malicious Code

      Class

      The product contains code that appears to be malicious in nature.

      Entry at MITRE CWE-506

    Public exploit references

    Publicly reported proof-of-concepts, exploit modules and detection templates for this vulnerability. NEOSEC links to the original sources only and does not provide any exploit code.

    Public exploit references
    CISA KEV CatalogCISA Known Exploited Vulnerability (opens in a new tab)cisa.govactively exploited
    Reference tagged as exploitgithub.com (opens in a new tab)PoC (publicly reported)reported, not verified—
    PoC-in-GitHub (nomi-sec)trivysupplychainanalysis (opens in a new tab)github.comPoC (publicly reported)reported, not verified

    References & sources

    • github.comaquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23advisory, x_refsource_CONFIRM, Exploit, Mitigation, Vendor advisory
    • docs.litellm.aiblog/security-update-march-2026web, x_refsource_MISC, Third-party advisory
    • futuresearch.aiblog/litellm-pypi-supply-chain-attackweb, x_refsource_MISC, Third-party advisory
    • github.comBerriAI/litellm/issues/24518web, x_refsource_MISC, Issue tracking, Mitigation, Third-party advisory
    • github.comBerriAI/litellm/issues/24518web, Third-party advisory, Issue tracking, Mitigation, Third-party advisory
    • github.comaquasecurity/trivy/discussions/10425web, x_refsource_MISC, Issue tracking, Vendor advisory
    • github.compypa/advisory-database/tree/main/vulns/litellm/PYSEC-2026-2.yamlweb, x_refsource_MISC, Third-party advisory
    • github.comteam-telnyx/telnyx-python/security/advisories/GHSA-955r-262c-33…web, x_refsource_MISC, Third-party advisory
    • inspector.pypi.ioproject/litellm/1.82.7/packages/79/5f/b6998d42c6ccd32d36e12661f…web, x_refsource_MISC, Broken link
    • inspector.pypi.ioproject/litellm/1.82.8/packages/f6/2c/731b614e6cee0bca1e010a36f…web, x_refsource_MISC, Broken link
    • rosesecurity.dev2026/03/20/typosquatting-trivy.htmlweb, Exploit, Exploit, Third-party advisory
    • cisa.govknown-exploited-vulnerabilities-catalog?field_cve=CVE-2026-33634web, government-resource, US government resource
    • microsoft.comen-us/security/blog/2026/03/24/detecting-investigating-defendin…web
    • wiz.ioblog/teampcp-attack-kics-github-actionweb, x_refsource_MISC, Not applicable
    • microsoft.comen-us/security/blog/2026/03/24/detecting-investigating-defendin…Third-party advisory, Technical description
    • NVD (NIST)vuln/detail/CVE-2026-33634advisory
    • github.comaquasecurity/trivypackage
    Embed badge

    Show the severity and KEV status of this vulnerability on your site – with a link back here. The image is updated hourly.

    Badge preview for CVE-2026-33634
    <a href="https://intel.neosec.eu/en/cve/CVE-2026-33634"><img src="https://intel.neosec.eu/badge/cve/CVE-2026-33634.svg?lang=en" alt="CVE-2026-33634 – NEOSEC Intel" height="20"></a>