惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CERT Recently Published Vulnerability Notes
K
Kaspersky official blog
S
Schneier on Security
Latest news
Latest news
Cisco Talos Blog
Cisco Talos Blog
T
Threatpost
T
Tor Project blog
T
Tenable Blog
The Register - Security
The Register - Security
T
Threat Research - Cisco Blogs
阮一峰的网络日志
阮一峰的网络日志
F
Fortinet All Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
H
Help Net Security
博客园_首页
I
Intezer
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Project Zero
Project Zero
Recorded Future
Recorded Future
C
Cybersecurity and Infrastructure Security Agency CISA
Vercel News
Vercel News
A
Arctic Wolf
P
Palo Alto Networks Blog
The Hacker News
The Hacker News
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
S
SegmentFault 最新的问题
Know Your Adversary
Know Your Adversary
P
Privacy & Cybersecurity Law Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Proofpoint News Feed
P
Privacy International News Feed
G
GRAHAM CLULEY
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
罗磊的独立博客
Simon Willison's Weblog
Simon Willison's Weblog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
T
The Exploit Database - CXSecurity.com
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Security Latest
Security Latest
Cyberwarzone
Cyberwarzone
L
Lohrmann on Cybersecurity
C
Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog

2024 Sonatype Blog

Open Source, Open Infrastructure, and the Space Between Request for Comments: CARE and Maven Central Q2 2026 Open Source Malware Index AI Is Forcing a New Open Source Security Model Vulnerability Prioritization Is Missing the AI-Era Point The Hidden National Security Threat Inside AI-Driven Software Miasma Returns: Leo Platform Compromise in npm The Rise of Collective Defense for Open Source Signal Over Noise: Reachability Analysis Is the Reality Check SCA Has Been Missing Software Security Has to Start at Assembly easy-day-js Targets Mastra, Dependency Attacks Grow Open Publishing, Commercial Scale Software Dependency Cooldowns Are a Symptom, Not a Strategy Atomic Arch npm Campaign Adds Malicious Dependency From SBOMs to AI BOMs: Why SPDX 3.0 Matters Mythos Found 10,000 Vulnerabilities. The Bigger Challenge Is Fixing Them New Shai-Hulud Miasma Wave Hits Hundreds of npm Packages Lazarus Group's Latest: Brandjacking Campaign on npm 5 Steps to Turn Your RMF Backlog Into a Continuous ATO: The CSRMC Migration Playbook The AI Race Is Becoming a Remediation Race Red Hat Cloud Services npm Packages Hijacked AI Is Making Software Autonomous, and Governance Must Follow Your Outdated Repository Still Works, But It May Not Be Safe Hijacked npm Package Attempts to Deliver PolinRider-Linked RAT AppSec Tools Explained: SAST vs SCA vs DAST | Sonatype Managing Open Source Software Risks With the HeroDevs EOL Dashboard Shai-Hulud is Back: Maintainer Accounts Are Still the Soft Target Building Trusted AI Development With Kiro and Sonatype Guide How to Build a Software Supply Chain Security Playbook The Evolution of Open Source Malware: From Volume to Trust Abuse The Mythos AI Vulnerability Storm: What to Do Next Malicious PyTorch Lightning Packages Found on PyPI Why Developer Experience Is the Foundation of DevSecOps Success Open is Not Costless: Reclaiming Sustainable Infrastructure Q1 Updates in Nexus Repository: More Formats, Stronger Operations, and a Better Day-to-Day Experience Self-Propagating npm Malware Turns Trusted Packages Into Attack Paths The Time Is Now to Prepare for CRA Enforcement Sonatype Innovate: Real Peer Connections, Real Product Influence, Real Recognition Mythos and the AI Vulnerability Storm: Exploring the Control Point When AI Writes Code, Who Governs the Dependencies? Why Software Supply Chain Security Requires a New Playbook Q1 2026 Open Source Malware Index: Adaptive Attacks Exploit Trust Modernizing Nexus Repository: Moving Beyond OrientDB AI, DevSecOps, and the Future of Application Security: The Gartner® Report How Sonatype's Container Scanning Protects You From Zero-Days Axios Compromise on npm Introduces Hidden Malicious Package Is Your Repository Ready for What's Next? Autonomous Development and AI: Speed vs. Security Grounded Intelligence Ensures Safe AI Software Development Compromised litellm PyPI Package Delivers Multi-Stage Credential Stealer Golden Pull Requests: Automating Trusted Remediation Without Breaking Builds Sonatype Discovers Two Malicious npm Packages
Inside a 176-Package npm Campaign Built to Beat Your Internal Dependencies
Sonatype Security Research Team · 2026-05-28 · via 2024 Sonatype Blog

The latest malware campaign uncovered by Sonatype researchers involved 176 malicious npm packages, many published with the exact same version number: 99.99.99.

The versioning strategy was not subtle, and likely was not intended to be.

This is a dependency confusion trick designed to win package resolution races against internal or private packages. In short, attackers aim to deduce the internal package names of their target, and publish a similarly named package to a public registry with a high version number.

If a customer's SDLC is not set up to defend against it, npm may prefer the higher semantic version over the intended internal dependency. And 99.99.99 tends to beat just about everything.

What We Found

Sonatype researchers identified a coordinated set of malicious npm packages containing embedded postinstall scripts designed to execute automatically during package installation.

The behavior chain is straightforward and effective:

  1. The package fingerprints the host environment.

  2. It downloads a platform-specific JavaScript payload.

  3. The payload performs additional reconnaissance and exfiltration.

  4. A second-stage platform-specific binary is downloaded and executed.

The malware attempts to collect and exfiltrate:

  • Usernames and hostnames.

  • Operating system and architecture details.

  • Current working directories.

  • Node.js runtime information.

  • Environment variables.

  • CI/CD secrets.

  • Authentication tokens and credentials.

In other words, the exact data attackers want from developer workstations and build systems.

Key Point Details
Platform-specific payloads Payload delivery for Windows, macOS, and Linux.
Persistence technique Detached background execution designed to persist outside the install process.
Code indicators Russian-language comments embedded in portions of the code.
Campaign consistency Shared infrastructure and behavior across all 176 packages.

Some of the Linux and macOS binaries already trigger antivirus detections. The Windows payload currently has fewer detections, which is usually not the sentence defenders want to read before coffee.

Why the Fake Version Numbers Matter

Many of the malicious packages used unusually high semantic version numbers like:

  • 99.99.99

  • 9.9.9

  • 9.9.10

  • 10.10.10

  • 11.11.11

This campaign appears consistent with dependency confusion tactics, where attackers publish packages to public registries using names that may overlap with internal enterprise dependencies. If a package manager resolves the public package first, especially one with a higher version number, the attacker's package can be installed automatically inside developer or CI/CD environments.

The attackers are not trying to fool developers into thinking these are mature software releases. They are trying to fool automated dependency resolution.

Modern software supply chain attacks increasingly target build behavior itself: version precedence, namespace assumptions, install scripts, and developer workflow automation.

The Real Problem: Install-Time Trust

npm's postinstall functionality is incredibly useful. It is also one of the most abused execution points in the modern software supply chain.

The moment developers install a package, they implicitly trust:

  • the package author,

  • the transitive dependency chain,

  • the install scripts,

  • the infrastructure hosting secondary payloads,

  • and whatever happens after the package executes locally.

That is a large trust boundary for a command most developers run reflexively. This campaign takes full advantage of that reality.

The malicious packages did not require a user to manually execute malware. The installation process handled that automatically.

By the time a developer notices suspicious network traffic or a strange background process, the second-stage payload may already be running.

Why This Campaign Stands Out

A few things make this operation particularly notable:

Scale

176 coordinated packages is not random experimentation. It suggests automation, infrastructure preparation, and deliberate targeting.

Dependency Confusion Tactics

The 99.99.99 versioning scheme strongly indicates the attackers were targeting misconfigured enterprise environments and internal package ecosystems.

Cross-Platform Targeting

The malware delivered different payloads based on operating system detection, increasing the likelihood of successful execution across developer environments and CI runners.

CI/CD Credential Targeting

Environment variable theft is especially dangerous in modern pipelines where secrets, cloud credentials, registry tokens, and signing keys frequently exist in runtime environments.

One compromised build agent can quickly become a supply chain pivot point.

What Developers and Security Teams Should Check Immediately

If any of these packages were installed, the affected host should be considered potentially compromised. Removing the dependency alone is not sufficient.

Recommended actions include:

  • Identify systems where the packages were installed.

  • Rotate exposed credentials and tokens immediately.

  • Review CI/CD secrets and environment variables.

  • Investigate outbound network connections from affected hosts.

  • Audit for secondary payload persistence.

  • Verify internal package namespace protections.

  • Reconfirm npm registry resolution order and scope configuration.

And yes, review whether your internal packages can accidentally resolve against public registries.

Because attackers already are.

The Bigger Trend

This campaign fits a larger pattern we are increasingly seeing across npm, PyPI, and other ecosystems: Attackers are optimizing for developer workflow shortcuts, automation gaps, and trust assumptions.

Sometimes, to be successful, an attack just needs a package manager doing exactly what it was told.

That is why modern software supply chain defense has to happen before components enter the build, not after malware is already executing inside it.

Or more bluntly: Security posture does not help much once the postinstall script starts beaconing out credentials.

Indicators and Attribution

Sonatype is tracking this activity as Sonatype-2026-003429 — see Guide for the full list of packages.

At the time of publication, attribution remains unconfirmed. However, researchers observed Russian-language comments embedded within the codebase and coordinated infrastructure patterns across the malicious packages.

The campaign remains under active investigation.

Tags

vulnerabilities Malware Analysis Malware Sonatype Guide