Morning Overview

Three separate supply-chain attacks hit npm, PyPI, and Docker Hub within 48 hours — all three targeted developer cloud credentials and SSH keys

Sometime around the last week of May 2026, attackers uploaded poisoned packages to three of the most widely used software registries on the internet within a span of roughly 48 hours. The targets were npm, PyPI, and Docker Hub. In each case, the malicious code did the same thing: it hunted for cloud-provider credentials and SSH private keys stored in developer environments, then transmitted them to attacker-controlled servers.

The most thoroughly documented of the three incidents involved Trivy, an open-source container-scanning tool maintained by Aqua Security and pulled millions of times from Docker Hub. A compromised distribution artifact turned the scanner itself into a collection mechanism for secrets. The U.S. government’s National Vulnerability Database now tracks the issue as CVE-2026-33634.

The Trivy compromise: a defensive tool turned against its users

Trivy is designed to check container images, file systems, and repositories for known vulnerabilities and misconfigurations. Development teams frequently run it inside continuous-integration pipelines that hold elevated permissions, including access to cloud API tokens and SSH keys needed for deployment. By poisoning Trivy’s artifacts on Docker Hub, attackers gained execution inside exactly those high-privilege environments.

The result was a precise inversion of trust. Teams that believed they were hardening their containers were instead handing their credentials to an attacker during every scheduled scan. The NVD entry for CVE-2026-33634 provides affected version ranges, severity metrics, and links to patches. Any organization running Trivy in its build pipeline should check that record immediately to determine whether its deployed version falls within the affected range.

Parallel attacks on npm and PyPI

Within the same narrow window, malicious packages appeared on npm (the default registry for JavaScript and Node.js) and PyPI (the primary repository for Python). Both sets of packages contained code engineered to locate cloud credentials and SSH keys on the host system and exfiltrate them to external endpoints. Registry maintainers removed the packages after community reports flagged the behavior.

Unlike the Docker Hub incident, neither the npm nor the PyPI attack has received a formal CVE assignment as of early June 2026. That means standardized severity scores, confirmed affected-version lists, and official remediation guidance are not yet available through the NVD. The names and download counts of the specific malicious packages have not been disclosed in primary government-maintained documentation, though community advisories have circulated among security teams.

Neither GitHub, which operates npm, nor the Python Software Foundation, which oversees PyPI, had published formal post-incident reports at the time of this article’s publication. Aqua Security’s public response to the Trivy compromise, beyond the information captured in the CVE record, was similarly unavailable for review. No public statements from AWS, Google Cloud, or Microsoft Azure regarding guidance for affected developers or bulk revocation of exposed keys had appeared in primary sources as of early June 2026.

Coordinated campaign or convergent opportunism?

The 48-hour clustering and identical targeting of cloud credentials and SSH keys across three separate ecosystems naturally raises the question of coordination. A single threat actor or group operating across npm, PyPI, and Docker Hub would represent a significant escalation in supply-chain attack sophistication.

However, no public attribution has linked the three incidents to a shared command-and-control infrastructure or a single operator. The compressed timeline is suggestive, but supply-chain attacks against package registries have been rising steadily. It is plausible that multiple independent groups recognized the same high-value target and acted within the same window by coincidence rather than design. Without forensic evidence tying the campaigns together, both explanations remain on the table.

What developers and security teams should do now

The common thread across all three incidents is that routine trust in upstream packages gave attackers access to production-grade secrets. Regardless of whether the attacks are linked, the defensive response is the same:

Rotate exposed credentials immediately. Any cloud-provider tokens, API keys, or SSH private keys that were accessible to container builds or package-install scripts during the affected window should be treated as compromised. Rotate them and audit access logs for unauthorized use.

Pin dependencies to verified hashes. Mutable version tags (such as latest or semver ranges) allow a poisoned release to propagate automatically. Pinning to a specific, hash-verified artifact prevents silent substitution.

Review pipeline logs for unexpected outbound connections. Exfiltration during build or scan steps typically generates network traffic to unfamiliar endpoints. Anomalous DNS lookups or HTTP requests in CI/CD logs are a strong signal of compromise.

Isolate secrets from build environments. Secret-management tools that inject credentials at runtime, rather than storing them in environment variables accessible to every build step, limit the blast radius when a dependency is compromised.

Why the formal record still lags behind the full threat

The CVE-2026-33634 entry for the Trivy compromise gives security teams a concrete, government-validated starting point for remediation. The npm and PyPI incidents lack that institutional anchor, which means their full scope, including how many developers downloaded the malicious packages and how many credentials were exfiltrated, is still coming into focus.

What is already clear is that package registries occupy a uniquely dangerous position in modern software development. Developers routinely grant install and build scripts access to the same credential stores that protect production infrastructure. When a trusted tool or a popular library is poisoned, the damage extends to every pipeline that pulled the compromised artifact before it was removed. These three attacks did not rely on exotic zero-day exploits in registry code. They exploited something far simpler and far harder to patch: the assumption that upstream packages are safe to run.

More from Morning Overview

*This article was researched with the help of AI, with human editors creating the final content.


More in Cybersecurity