CTIPilot

npm

product · product:npm single-source

Coverage timeline
3
first 2026-07-23 → last 2026-08-07
Peak priority
high
1 high · 2 notable
Sources cited
6
6 hosts
Sections touched
3
active-threats, deep-dive, research
Co-occurring entities
8
see Co-occurring entities below
ATT&CK techniques
20
pinned v19.2 · see below

ATT&CK techniques

20 techniques observed across 3 entries, derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v19.2 · compare on the matrix · Navigator layer (JSON)

Initial Access TA0001

T1195.001Supply Chain Compromise: Compromise Software Dependencies and Development Tools×1

Adversaries may manipulate software dependencies and development tools prior to receipt by a final consumer for the purpose of data or system compromise. Applications often depend on external software to function properly. Popular open source projects that are used as dependencies in many applications, such as pip and NPM packages, may be targeted as a means to add malicious code to users of the dependency. This may also include abandoned packages, which in some cases could be re-registered by threat actors after being removed by adversaries. Adversaries may also employ "typosquatting" or name-confusion by choosing names similar to existing popular libraries or packages in order to deceive a user.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

T1195.002Supply Chain Compromise: Compromise Software Supply Chain×3

Adversaries may manipulate application software prior to receipt by a final consumer for the purpose of data or system compromise. Supply chain compromise of software can take place in a number of ways, including manipulation of the application source code, manipulation of the update/distribution mechanism for that software, or replacing compiled releases with a modified version.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · 2026-07-23/sandworm-mode-npm-ai-toolchain-supply-chain-worm-mcp · ATT&CK page ↗

Execution TA0002

T1053.005Scheduled Task/Job: Scheduled Task×1

Adversaries may abuse the Windows Task Scheduler to perform task scheduling for initial or recurring execution of malicious code. There are multiple ways to access the Task Scheduler in Windows. The schtasks utility can be run directly on the command line, or the Task Scheduler can be opened through the GUI within the Administrator Tools section of the Control Panel. In some cases, adversaries have used a .NET wrapper for the Windows Task Scheduler, and alternatively, adversaries have used the Windows netapi32 library and Windows Management Instrumentation (WMI) to create a scheduled task. Adversaries may also utilize the Powershell Cmdlet `Invoke-CimMethod`, which leverages WMI class `PS_ScheduledTask` to create a scheduled task via an XML path.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

T1059.007Command and Scripting Interpreter: JavaScript×2

Adversaries may abuse various implementations of JavaScript for execution. JavaScript (JS) is a platform-independent scripting language (compiled just-in-time at runtime) commonly associated with scripts in webpages, though JS can be executed in runtime environments outside the browser.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

Persistence TA0003

T1053.005Scheduled Task/Job: Scheduled Task×1

Adversaries may abuse the Windows Task Scheduler to perform task scheduling for initial or recurring execution of malicious code. There are multiple ways to access the Task Scheduler in Windows. The schtasks utility can be run directly on the command line, or the Task Scheduler can be opened through the GUI within the Administrator Tools section of the Control Panel. In some cases, adversaries have used a .NET wrapper for the Windows Task Scheduler, and alternatively, adversaries have used the Windows netapi32 library and Windows Management Instrumentation (WMI) to create a scheduled task. Adversaries may also utilize the Powershell Cmdlet `Invoke-CimMethod`, which leverages WMI class `PS_ScheduledTask` to create a scheduled task via an XML path.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

T1546Event Triggered Execution×2

Adversaries may establish persistence and/or elevate privileges using system mechanisms that trigger execution based on specific events. Various operating systems have means to monitor and subscribe to events such as logons or other user activity such as running specific applications/binaries. Cloud environments may also support various functions and services that monitor and can be invoked in response to specific cloud events.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · 2026-07-23/sandworm-mode-npm-ai-toolchain-supply-chain-worm-mcp · ATT&CK page ↗

T1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder×1

Adversaries may achieve persistence by adding a program to a startup folder or referencing it with a Registry run key. Adding an entry to the "run keys" in the Registry or startup folder will cause the program referenced to be executed when a user logs in. These programs will be executed under the context of the user and will have the account's associated permissions level.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

Privilege Escalation TA0004

T1053.005Scheduled Task/Job: Scheduled Task×1

Adversaries may abuse the Windows Task Scheduler to perform task scheduling for initial or recurring execution of malicious code. There are multiple ways to access the Task Scheduler in Windows. The schtasks utility can be run directly on the command line, or the Task Scheduler can be opened through the GUI within the Administrator Tools section of the Control Panel. In some cases, adversaries have used a .NET wrapper for the Windows Task Scheduler, and alternatively, adversaries have used the Windows netapi32 library and Windows Management Instrumentation (WMI) to create a scheduled task. Adversaries may also utilize the Powershell Cmdlet `Invoke-CimMethod`, which leverages WMI class `PS_ScheduledTask` to create a scheduled task via an XML path.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

T1546Event Triggered Execution×2

Adversaries may establish persistence and/or elevate privileges using system mechanisms that trigger execution based on specific events. Various operating systems have means to monitor and subscribe to events such as logons or other user activity such as running specific applications/binaries. Cloud environments may also support various functions and services that monitor and can be invoked in response to specific cloud events.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · 2026-07-23/sandworm-mode-npm-ai-toolchain-supply-chain-worm-mcp · ATT&CK page ↗

T1547.001Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder×1

Adversaries may achieve persistence by adding a program to a startup folder or referencing it with a Registry run key. Adding an entry to the "run keys" in the Registry or startup folder will cause the program referenced to be executed when a user logs in. These programs will be executed under the context of the user and will have the account's associated permissions level.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

Stealth TA0005

T1027Obfuscated Files or Information×2

Adversaries may attempt to make an executable or file difficult to discover or analyze by encrypting, encoding, or otherwise obfuscating its contents on the system or in transit. This is common behavior that can be used across different platforms and the network to evade defenses.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

T1497Virtualization/Sandbox Evasion×1

Adversaries may employ various means to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from Virtualization/Sandbox Evasion during automated discovery to shape follow-on behaviors.

Evidence: 2026-07-23/sandworm-mode-npm-ai-toolchain-supply-chain-worm-mcp · ATT&CK page ↗

T1497.001Virtualization/Sandbox Evasion: System Checks×1

Adversaries may employ various system checks to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from Virtualization/Sandbox Evasion during automated discovery to shape follow-on behaviors.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

T1620Reflective Code Loading×1

Adversaries may reflectively load code into a process in order to conceal the execution of malicious payloads. Reflective loading involves allocating then executing payloads directly within the memory of the process, vice creating a thread or process backed by a file path on disk (e.g., Shared Modules).

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

Defense Impairment TA0112

T1685Disable or Modify Tools×1

Adversaries may disable, degrade, or tamper with security tools or applications (e.g., endpoint detection and response (EDR) tools, intrusion detection systems (IDS), antivirus, logging agents, sensors, etc.) to impair or reduce visibility of defensive capabilities. This may include stopping specific services, killing processes, modifying or deleting tool configuration files and Registry keys, or preventing tools from updating. This may also include impairing defenses more broadly by disrupting preventative, detection, and response mechanisms across host, network, and cloud environments.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

Credential Access TA0006

T1528Steal Application Access Token×1

Adversaries can steal application access tokens as a means of acquiring credentials to access remote systems and resources.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

T1552Unsecured Credentials×1

Adversaries may search compromised systems to find and obtain insecurely stored credentials. These credentials can be stored and/or misplaced in many locations on a system, including plaintext files (e.g. Shell History), operating system or application-specific repositories (e.g. Credentials in Registry), or other specialized files/artifacts (e.g. Private Keys).

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

T1552.001Unsecured Credentials: Credentials In Files×2

Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials. These can be files created by users to store their own credentials, shared credential stores for a group of individuals, configuration files containing passwords for a system or service, or source code/binary files containing embedded passwords.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · 2026-07-23/sandworm-mode-npm-ai-toolchain-supply-chain-worm-mcp · ATT&CK page ↗

Discovery TA0007

T1497Virtualization/Sandbox Evasion×1

Adversaries may employ various means to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from Virtualization/Sandbox Evasion during automated discovery to shape follow-on behaviors.

Evidence: 2026-07-23/sandworm-mode-npm-ai-toolchain-supply-chain-worm-mcp · ATT&CK page ↗

T1497.001Virtualization/Sandbox Evasion: System Checks×1

Adversaries may employ various system checks to detect and avoid virtualization and analysis environments. This may include changing behaviors based on the results of checks for the presence of artifacts indicative of a virtual machine environment (VME) or sandbox. If the adversary detects a VME, they may alter their malware to disengage from the victim or conceal the core functions of the implant. They may also search for VME artifacts before dropping secondary or additional payloads. Adversaries may use the information learned from Virtualization/Sandbox Evasion during automated discovery to shape follow-on behaviors.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

Collection TA0009

T1119Automated Collection×1

Once established within a system or network, an adversary may use automated techniques for collecting internal data. Methods for performing this technique could include use of a Command and Scripting Interpreter to search for and copy information fitting set criteria such as file type, location, or name at specific time intervals.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

Command and Control TA0011

T1071.004Application Layer Protocol: DNS×2

Adversaries may communicate using the Domain Name System (DNS) application layer protocol to avoid detection/network filtering by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server.

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · 2026-07-23/sandworm-mode-npm-ai-toolchain-supply-chain-worm-mcp · ATT&CK page ↗

T1102.001Web Service: Dead Drop Resolver×1

Adversaries may use an existing, legitimate external Web service to host information that points to additional command and control (C2) infrastructure. Adversaries may post content, known as a dead drop resolver, on Web services with embedded (and often obfuscated/encoded) domains or IP addresses. Once infected, victims will reach out to and be redirected by these resolvers.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

T1105Ingress Tool Transfer×1

Adversaries may transfer tools or other files from an external system into a compromised environment. Tools or files may be copied from an external adversary-controlled system to the victim network through the command and control channel or through alternate protocols such as ftp. Once present, adversaries may also transfer/spread tools between victim devices within a compromised environment (i.e. Lateral Tool Transfer).

Evidence: 2026-08-07/flooding-dropper-npm-846-packages-dns-txt-fallback · ATT&CK page ↗

T1568Dynamic Resolution×1

Adversaries may dynamically establish connections to command and control infrastructure to evade common detections and remediations. This may be achieved by using malware that shares a common algorithm with the infrastructure the adversary uses to receive the malware's communications. These calculations can be used to dynamically adjust parameters such as the domain name, IP address, or port number the malware uses for command and control.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

Exfiltration TA0010

T1567.001Exfiltration Over Web Service: Exfiltration to Code Repository×1

Adversaries may exfiltrate data to a code repository rather than over their primary command and control channel. Code repositories are often accessible via an API (ex: https://api.github.com). Access to these APIs are often over HTTPS, which gives the adversary an additional level of protection.

Evidence: 2026-08-06/chaindrop-shai-hulud-npm-worm-onchain-c2-resolver · ATT&CK page ↗

Story timeline

  1. 2026-08-07Flooding Dropper: 846 npm packages published from disposable accounts, with a dropper that falls back to DNS TXT records when its download hosts are blocked
    active-threatsAn npm campaign built for attrition, throwaway publisher accounts, per-package payload variation, and a DNS fallback that survives host blocking
  2. 2026-08-06CHAINDROP, the Shai-Hulud npm worm returns through the keyv maintainer, backdoors 400+ packages, and resolves its exfiltration endpoint from an Ethereum smart contract
    deep-diveA self-propagating npm worm reaches packages totalling 1.3 billion monthly downloads, and its C2 address lives on-chain
  3. 2026-07-23SANDWORM_MODE, an npm supply-chain worm that 'lives off the AI toolchain', poisoning MCP servers in AI coding assistants to steal developer credentials
    researchCrowdStrike documents SANDWORM_MODE, an npm worm that abuses AI coding-assistant MCP configs and git hooks to harvest developer credentials

Where this entity is cited

  • research1
  • deep-dive1
  • active-threats1

Source distribution

  • crowdstrike.com1 (17%)
  • elastic.co1 (17%)
  • ox.security1 (17%)
  • securitybrief.com.au1 (17%)
  • sonatype.com1 (17%)
  • unit42.paloaltonetworks.com1 (17%)

Co-occurring entities

Derived: referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.

Entries about npm (3)

2026-08-06 · view entry permalink →

HIGHexploitedupdatedNATOB1

CHAINDROP, the Shai-Hulud npm worm returns through the keyv maintainer, backdoors 400+ packages, and resolves its exfiltration endpoint from an Ethereum smart contract

Elastic Security Labs identified a new Shai-Hulud campaign on 2026-08-04 that began by trojanising the monorepo of keyv, a widely used key-value storage library, and embedding a self-propagating worm it names CHAINDROP (Elastic Security Labs, 2026-08-06). Elastic reports over 400 unique npm packages compromised at the time of writing, and quantifies the blast radius through download volume: keyv alone received over 600 million downloads in the preceding month, with flat-cache near 580 million, cacheable-request over 137 million, cacheable over 30 million and cache-manager over 16 million (Elastic Security Labs, 2026-08-06). OX Security published its own first-hand analysis two days earlier and describes a massive Shai-Hulud campaign against npm on its own larger package and download counts (OX Security, 2026-08-04). Elastic frames the wave explicitly as the return of Shai-Hulud rather than a new family, and points to the Dune-derived naming the payload reuses as the similarity to previous Shai-Hulud campaigns (Elastic Security Labs, 2026-08-06).

Execution. The chain starts at a preinstall hook in package.json, abusing a legitimate npm feature that runs arbitrary commands before a package is installed and therefore needs no interaction from the victim beyond the install itself (Elastic Security Labs, 2026-08-06). Every subpackage in the keyv repository was backdoored with a dropper that checks whether the Bun JavaScript runtime is present and, if not, detects the host platform and architecture and downloads Bun directly from its official release page before using it to execute the payload; the temporary Bun directory is deleted afterwards (Elastic Security Labs, 2026-08-06). The payload is cross-platform across Linux, macOS and Windows, and is heavily obfuscated at 711 kilobytes using control-flow flattening (Elastic Security Labs, 2026-08-06). It appears under two filenames (one in packages compromised directly from the keyv monorepo, another in packages trojanised during worm propagation) which share the same hash, so the filename indicates which generation of the infection a defender is looking at (Elastic Security Labs, 2026-08-06).

A second infection route that does not involve installing anything. In Visual Studio Code a folderOpen task under tasks.json runs the dropper when an infected repository is merely opened, and where the stolen credential set includes a GitHub App token the worm commits malicious hooks to up to 50 branches per accessible repository, injecting both a .claude/settings.json and a .vscode/tasks.json into each, so a developer can be infected by opening the repository (Elastic Security Labs, 2026-08-06). That is the operationally important departure: an organisation that responds to a supply-chain wave purely by pinning or freezing dependency installs has not closed the path that fires when an engineer clones and opens the repository, and the AI-assistant configuration file is a trust surface most repository review does not read.

Collection and exfiltration. A collector component scans over 300 unique patterns across credential stores on a developer machine, with notable targeting of AI-tooling credentials for Anthropic, Claude, Codex, Cursor, OpenAI and Gemini, alongside AWS, GCP, Azure and Alibaba Cloud credentials, GitHub personal-access tokens, JWTs and session tokens, HashiCorp Vault tokens, SSH private keys, Kubernetes service-account tokens and npm tokens (Elastic Security Labs, 2026-08-06). Harvested material is gzip-compressed, encrypted under a randomly generated AES-256-GCM key, and that key is in turn RSA-encrypted to the attacker's hardcoded public key (Elastic Security Labs, 2026-08-06). For delivery, CHAINDROP does not hardcode a command-and-control domain: it queries an Ethereum smart contract at runtime to retrieve the current exfiltration endpoint, using multiple RPC providers as fallbacks, so the operator can rotate infrastructure by updating the contract rather than by shipping a new payload (Elastic Security Labs, 2026-08-06). If that path and its successor fail, it falls back to exfiltrating through a public GitHub repository created under the victim's own account with a fixed Shai-Hulud description string (Elastic Security Labs, 2026-08-06).

A containment-sequencing warning the two reports do not agree on. OX Security states the malware carries a dead man's switch that deletes the current machine if the stolen GitHub token is revoked (OX Security, 2026-08-04). Elastic's own guidance is to revoke all GitHub tokens for impacted machines and does not mention any such trigger (Elastic Security Labs, 2026-08-06). Only one vendor reports it and the other does not corroborate it, so treat it as an unconfirmed claim from a first-hand analysis rather than an established property, but sequence around it, because the cost of being wrong is asymmetric. Isolating and imaging a suspected host before revoking its GitHub token loses nothing if the switch does not exist, while revoking first loses the host and its evidence if it does.

Propagation gate. The worm activates only when the credential sweep turns up an npm token meeting two conditions together: package-write permission, and the ability to publish without two-factor authentication (Elastic Security Labs, 2026-08-06). Given a qualifying token it enumerates every package the victim can publish to, downloads each latest tarball from the registry, and republishes it trojanised (Elastic Security Labs, 2026-08-06). That gate is the single most useful fact in the report for a defender, because it converts an unbounded ecosystem-wide risk into a property you can audit on your own accounts.

Triage: developer and CI hosts legitimately run script interpreters from package-manager parents on every build, and legitimately download toolchains, so neither alone discriminates. The separating features are that the runtime is fetched mid-install rather than during provisioning and its directory is removed immediately afterwards; that the process reads credential stores belonging to unrelated tools (cloud CLIs, SSH, Kubernetes, AI assistants) in one burst, which no ordinary build step does; and that outbound blockchain RPC follows the credential reads in the same process tree. Any one of these is weak on its own; the sequence is the signal.

keyv alone received over 600 million downloads last month

Execution is triggered via a preinstall hook in package.json.

package write permissions and the ability to publish without two-factor authentication (bypass_2fa)

CHAINDROP does not hardcode a C2 domain; instead, it queries an Ethereum smart contract

Elastic Security Labs 2026-08-06

A massive Shai-Hulud campaign hit npm

OX Security 2026-08-04

locates the Runner.Worker process on GitHub Actions runners, opens /proc/<pid>/maps and /proc/<pid>/mem, and searches live process memory for OpenID Connect (OIDC) tokens and runner secrets.

This is not forged provenance. The attestation says the tarball was built in that repository by that workflow, and that is true.

Pivot on the Rekor log index and the workflow identity inside the certificate, not on whether the signature checks out.

Palo Alto Networks Unit 42 2026-08-06
Updaterun 2026-08-08T0409Z-intelactionsaffected_productsevidencesectorssourcestagstechniquesbody

Unit 42 published its own analysis of the CHAINDROP wave on 2026-08-06, and two of its findings change what defenders can rely on rather than adding detail to what they already knew.

The first is credential theft that never touches disk. An embedded Python helper hidden inside an encrypted blob in the payload "locates the Runner.Worker process on GitHub Actions runners, opens /proc/<pid>/maps and /proc/<pid>/mem, and searches live process memory for OpenID Connect (OIDC) tokens and runner secrets" (Unit 42, 2026-08-06). Ephemeral OIDC tokens exist to avoid long-lived secrets sitting in a file or a variable; reading them out of the runner's address space while they are live defeats that design, and any secret-scanning control that inspects files or environment variables at rest sees nothing.

The second is a single-target path that is worse than a forgery. The worm checks three environment variables and only proceeds if it finds itself inside GitHub Actions, in a repository whose name contains /opensearch-js, in a workflow whose reference contains release-drafter.yml; anywhere else in that project it exits and steals nothing, staying silent in exactly the runs a maintainer is most likely to be reading (Unit 42, 2026-08-06). In that path it asks the runner for an OIDC token scoped to npm:registry.npmjs.org and trades it at npm's own trusted-publishing exchange for a real publish credential, the repository's legitimate release identity becomes the attacker's. It then downloads the latest tarball, bumps the patch version and adds a single dependency line typosquatting the project's own scope, never touching install scripts at all, so detections built around preinstall hooks would miss it. Finally it requests a second OIDC token for Sigstore, obtains a Fulcio certificate, builds an in-toto SLSA v1 provenance statement over the tarball's SHA-512 hash, signs it and uploads the entry to the public Rekor transparency log (Unit 42, 2026-08-06).

Unit 42 is explicit about what that means: "This is not forged provenance. The attestation says the tarball was built in that repository by that workflow, and that is true." Its guidance follows directly; a package having valid npm provenance does not mean the package is clean, only that the tarball came out of the workflow named in the certificate, and if that workflow is running attacker code then valid provenance is what you should expect to see. "Pivot on the Rekor log index and the workflow identity inside the certificate, not on whether the signature checks out" (Unit 42, 2026-08-06).

Unit 42 states it did not observe this path execute and that it cannot execute anywhere except in that one workflow in that one repository, but that it is fully implemented and reachable from the payload's main entry point (Unit 42, 2026-08-06). The worm also runs a locale gate before any collection, exiting cleanly on a Russian-language host.

threat06 Aug 04:11Zmulti-sourceOpen finding ↗

2026-08-07 · view entry permalink →

NOTABLENATOB2

Flooding Dropper: 846 npm packages published from disposable accounts, with a dropper that falls back to DNS TXT records when its download hosts are blocked

Sonatype Research Labs is tracking an active npm campaign it calls Flooding Dropper, spanning 846 components at the time of publication, after researchers at OpenSourceMalware reported one package in the set on 2026-08-05 (Sonatype Research Labs, 2026-08-05). The distribution model is the point: instead of one prolific publisher, the operator appears to automate npm account and package creation, publishing a handful of packages from each of many accounts with names that interpolate a small set of recurring terms and version numbers clustered in one range. Sonatype is explicit that these naming characteristics are a correlation aid rather than a control (they help group today's packages and will change) and this entry deliberately carries the shape of the convention rather than package names.

The first-stage JavaScript runs at install or import time and behaves as a cross-platform loader with more than one way to succeed. It checks environment variables and local state markers to decide whether to run at all, identifies the host operating system and processor architecture to select a matching Windows, Linux or macOS payload, and attempts the download from a randomised set of hardcoded hosts. When those HTTPS fetches fail it falls back to DNS: the payload is reassembled and decoded from TXT-record responses, so blocking a download host does not prevent delivery. The binary is then written to a temporary directory, marked executable on Unix-like systems, and launched detached with output suppressed, and Sonatype spells out why that matters operationally: "Launching the payload in a detached process is an important failsafe because killing the npm installation process or parent Node.js process does not necessarily stop the attack" (Sonatype Research Labs, 2026-08-05). Killing the build does not kill the intrusion.

Sonatype's initial analysis of the Windows second stage finds another loader rather than a final payload: it patches Event Tracing for Windows and Antimalware Scan Interface functions to interfere with monitoring and scanning, checks for debuggers, virtual machines, sandboxes and security products, copies itself to a persistent location under the user's AppData directory, establishes persistence through both a Registry Run key and a scheduled task, then downloads an encrypted payload, decrypts it and executes it reflectively in memory so nothing conventional is written to disk for a disk-focused control to catch (Sonatype Research Labs, 2026-08-05). Sonatype classifies the affected packages under CWE-506 at CVSS 8.7 and tracks the campaign as sonatype-2026-005660, which is the handle to pull the current package list from rather than any naming heuristic. The packages also carry slightly modified payloads (syntactically different, functionally identical, with renamed URL functions and variables) which is aimed squarely at signature matching rather than at behavioural detection.

Launching the payload in a detached process is an important failsafe because killing the npm installation process or parent Node.js process does not necessarily stop the attack.

Impacted organizations should consider the host compromised, remove the package, investigate secondary payload execution and persistence, and rotate exposed credentials only after the environment has been cleaned.

Sonatype Research Labs 2026-08-05
threat07 Aug 04:41Zsingle-sourceOpen finding ↗

2026-07-23 · view entry permalink →

NOTABLENATOB2

SANDWORM_MODE, an npm supply-chain worm that 'lives off the AI toolchain', poisoning MCP servers in AI coding assistants to steal developer credentials

CrowdStrike's research describes SANDWORM_MODE as a multi-stage npm supply-chain worm (first discovered February 2026) that targets AI-augmented developer workflows rather than only conventional package distribution or build systems, what CrowdStrike frames as "living off the AI toolchain," abusing the normalised runtime behaviours of AI coding assistants, CI automation and LLM tooling so its actions blend into legitimate developer telemetry (CrowdStrike, 2026-07-21). On install the worm writes unexpected entries into AI coding-assistant configuration files (Claude Desktop, Cursor, VS Code, Windsurf) that register a rogue Model Context Protocol (MCP) tool provider staged in a hidden directory, and it injects hooks under the global git-template hooks path so persistence fires on future git operations. It then harvests credentials from environment variables and .env/SSH-key files (npm tokens, AWS keys, SSH keys, and API keys for multiple LLM providers) fingerprints the host to separate developer workstations from CI runners, and delays full activation 48–96 hours on workstations (immediately on CI) specifically to defeat tools that correlate install-time and behaviour signals, falling back to DNS tunnelling when primary exfiltration is blocked (SecurityBrief, 2026-07-22). The load-bearing defender lesson is CrowdStrike's own candour: of 14 investigated behaviours only 9 produced any signal and only 2 met the fidelity bar for customer-visible alerting, because npm publishes, repo pushes, LLM-API calls, credential handling and file writes overlap heavily with legitimate developer and CI activity (CrowdStrike, 2026-07-21).

SANDWORM_MODE introduces an analogous pattern for AI-augmented development environments: living off the AI toolchain.

Of 14 investigated behaviors, only 9 could produce any signal, and only 2 met the fidelity bar for customer-visible alerting.

CrowdStrike 2026-07-21
research23 Jul 04:34Zsingle-sourceOpen finding ↗