Projects with nearly 2 million weekly downloads
A highly successful software supply chain attack has been identified within the npm package repository, involving a malicious package named indexed-btree. This package, which masqueraded as a legitimate data structure utility, achieved nearly two million weekly downloads by employing a sophisticated evasion technique. Instead of using preinstall or postinstall scripts, which are heavily monitored, the threat actor embedded the malicious loader within a standard runtime function. This allowed the package to build a reputation and pass automated security checks. When triggered, the malware exfiltrated system information and used the Ethereum blockchain as a resilient C2 channel. The campaign is estimated to have netted the attacker approximately 109 ETH (around €230,933).
The attack represents a tactical evolution in supply chain attacks, specifically designed to bypass modern security controls in package management ecosystems. The threat actor, using the handle "charlessadler25," published the indexed-btree package on June 18, 2026. To appear legitimate, the package mimicked a real utility and was supported by a fabricated GitHub repository with a plausible commit history.
The key innovation was hiding the malicious trigger within the BTree.prototype.set() method. This code only executes when a developer actively uses that specific function in their application, meaning the payload remains dormant during the npm install phase, where most security scanning occurs. This runtime execution strategy allowed the package to remain undetected for a significant period, accumulating a massive number of downloads and being integrated into countless downstream projects.
T1140 - Deobfuscate/Decode Files or Information combined with runtime execution.set() method is called, the first-stage loader executes. It performs host fingerprinting, collecting OS details, architecture, and hostname (T1082 - System Information Discovery).T1567 - Exfiltration Over Web Service.T1102 - Web Service.T1070.004 - Indicator Removal: File Deletion.This attack had a significant impact due to its scale. With nearly two million weekly downloads, the malicious package was likely integrated into a vast number of web applications and development environments. Any project using this dependency is compromised. The financial success of the campaign (€230,000+) will undoubtedly incentivize other threat actors to adopt and refine these runtime evasion and blockchain C2 techniques. The incident severely erodes trust in the open-source ecosystem and demonstrates that even packages with high download counts and seemingly legitimate repositories can be malicious. Developers and organizations using these dependencies are at risk of data theft, further system compromise, and being roped into the attacker's infrastructure.
Security teams may want to hunt for the following patterns to detect this or similar threats:
url_patternhooks.slack.com or api.telegram.orgurl_patternsepolia.infura.io or other Ethereum testnet gatewaysfile_namenode_modules/indexed-btree/command_line_patternnode -e "..."Software Composition Analysis (SCA): Use SCA tools to scan your codebase and identify if the indexed-btree package is a dependency in any project. If found, it must be removed immediately.
Runtime Analysis: Since the malware evades static scans, runtime analysis is crucial. Execute applications in a sandboxed environment and monitor their behavior, including network connections, file system access, and process creation. This is a direct application of Dynamic Analysis (sandboxing).
Egress Filtering: Block outbound connections to suspicious destinations. Deny traffic to Slack, Telegram, and cryptocurrency network gateways from build servers and applications by default. This Outbound Traffic Filtering can break the malware's C2 and exfiltration channels.
Dependency Vetting: Do not blindly trust packages based on download counts. Before adding a new dependency, vet the package by inspecting its code, repository history, and author. Look for red flags like a new author with no history or a recently created repository with a fabricated history.
Lock Files: Use package lock files (package-lock.json, yarn.lock) to ensure that you are using a specific, vetted version of a dependency and prevent automatic updates to potentially malicious versions.
Least Privilege Execution: Run build and application processes with the minimum necessary permissions. For example, use network policies to restrict the outbound connections a build container can make, preventing it from reaching arbitrary endpoints on the internet. This is a form of Process-based Network Isolation.
Run applications in a sandboxed environment to monitor runtime behavior and detect malicious activity that evades static scans.
Mapped D3FEND Techniques:
Block outbound connections from build servers and applications to non-essential services like Slack, Telegram, and crypto networks.
Mapped D3FEND Techniques:
While not a direct mitigation for this attack, keeping SCA tools and scanners updated is crucial for detecting known malicious packages.
Mapped D3FEND Techniques:
Given that the 'indexed-btree' package specifically evades install-time static analysis, dynamic analysis (sandboxing) is a critical defensive measure. Development and CI/CD pipelines should incorporate a step where applications and their dependencies are executed in an isolated, instrumented environment before being promoted to production. During this phase, security tools should monitor for suspicious runtime behaviors such as unexpected network callbacks to services like Slack, Telegram, or Ethereum gateways. Any process that attempts to fingerprint the host system and then connect to an external service unrelated to its declared function should be flagged as malicious. This provides a crucial detection layer for threats designed to activate only at runtime.
A robust egress filtering policy can neutralize this threat by cutting off its C2 and exfiltration channels. Build servers, containerized application environments, and other non-interactive systems should be subject to a default-deny outbound network policy. All outbound traffic should be blocked unless explicitly allowed. For a Node.js application, this means allowing connections to required databases or internal APIs, but blocking connections to arbitrary internet destinations like hooks.slack.com, api.telegram.org, and Ethereum nodes. This containment strategy ensures that even if a malicious package is installed and executed, it cannot 'call home' to receive further instructions or exfiltrate stolen data.
The malicious 'indexed-btree' package is first uploaded to npm by the user 'charlessadler25'.

Cybersecurity professional with over 10 years of specialized experience in security operations, threat intelligence, incident response, and security automation. Expertise spans SOAR/XSOAR orchestration, threat intelligence platforms, SIEM/UEBA analytics, and building cyber fusion centers. Background includes technical enablement, solution architecture for enterprise and government clients, and implementing security automation workflows across IR, TIP, and SOC use cases.
CyberNetSec.io uses automation to assist source monitoring, deduplication, observable extraction, and structured intelligence generation. Published analysis follows human-defined editorial standards and adds defensive context including MITRE ATT&CK, D3FEND, STIX, and Sigma where applicable. Read our editorial policy.
Help others stay informed about cybersecurity threats
Every tactic, technique, and sub-technique used in this threat has been identified and mapped to the MITRE ATT&CK framework for consistent, actionable threat language.
Observables and indicators of compromise (IOCs) have been extracted and cataloged. Risk has been assessed and correlated with known threat actors and historical campaigns.
Detection rules, incident response steps, and D3FEND-aligned mitigation strategies are included so your team can act on this intelligence immediately.
Structured threat data is packaged as a STIX 2.1 bundle and can be visualized as an interactive graph — relationships between actors, malware, techniques, and indicators.
Sigma detection rules are derived from the threat techniques in this article and can be converted for deployment across any major SIEM or EDR platform.