Fake npm install messages hide RAT malware in new open source supply chain campaign


A new software supply chain campaign is targeting developers through malicious npm packages that fake normal installation activity while secretly deploying a remote access trojan. ReversingLabs says the operation, which it calls the Ghost campaign, started in early February 2026 and used deceptive install output to make the malicious behavior look routine.

The attack works because the packages do not behave like obvious malware at first. Instead, they print fake npm logs, display a progress bar, and insert delays so the install feels legitimate. Behind that screen activity, the packages try to steal the user’s sudo password and then use it to install a final-stage RAT that can steal crypto wallets, collect sensitive data, and execute attacker commands.

This technique matters because it targets trust, not just code. Developers often expect odd-looking output, permission errors, and dependency issues during npm installs. The attackers abuse that familiarity to make a malicious password prompt look normal, which gives them a cleaner path to persistence and full device compromise.

The sample article you shared captured the core flow correctly, including the fake install logs, the sudo phishing prompt, Telegram-based payload retrieval, and the list of malicious npm packages.

How the Ghost campaign works

ReversingLabs says the attack begins when a developer installs one of several rogue npm packages. The package then simulates a convincing install process by showing fake downloads and package activity, even though the components it claims to fetch do not exist. The names shown in the terminal come from a hardcoded list, which helps the output look varied and believable.

Fake npm install logs (Source – ReversingLabs)

At a later stage, the script throws what appears to be a standard npm permission error tied to /usr/local/lib/node_modules, a location developers commonly associate with global package installs on Linux and macOS. The victim then sees a request for their sudo password, which can feel expected in that context. Once entered, the malware uses the stolen password to continue the infection chain silently.

ReversingLabs says the downloader fetches the final payload URL and decryption key from a Telegram channel. In one variation involving coinbase-desktop-sdk, the campaign instead used a post on teletype.in disguised as blockchain documentation. The payload is then decrypted, written to disk, and executed.

sudo password prompt (Source – ReversingLabs)

Why this attack stands out

The most interesting part of this campaign is not just the malware itself. It is the social engineering wrapped around the install process. ReversingLabs says the fake logs were designed to hide malicious behavior in plain sight, which marks a more polished approach to open source supply chain abuse.

The operation also appears broader than the first seven npm packages. Jamf Threat Labs says the same campaign expanded beyond npm into GitHub repositories disguised as legitimate developer tools and AI workflows, which widened the potential victim pool beyond developers who install suspicious packages directly from npm.

Telegram channel from which key and final stage URL are downloaded (Source – ReversingLabs)

That broader spread matters because it shows the operators are not relying on one ecosystem alone. They are blending package registry abuse, GitHub trust-building, and realistic terminal behavior into one campaign that aims to catch developers at multiple points in their workflow.

Known malicious packages

ReversingLabs linked the campaign to npm packages published by the user mikilanjillo. The sample you shared listed the same set.

  • react-performance-suite
  • react-state-optimizer-core
  • react-fast-utilsa
  • ai-fast-auto-trader
  • pkgnewfefame1
  • carbon-mac-copy-cloner
  • coinbase-desktop-sdk

Infection flow at a glance

StageWhat happens
Initial accessDeveloper installs a malicious npm package
Deception layerPackage shows fake npm logs, fake downloads, and delays
Credential theftScript displays a believable permission error and asks for sudo password
RetrievalDownloader fetches payload details from Telegram or teletype.in
ExecutionFinal RAT is decrypted, written to disk, and launched
Post-infectionMalware steals sensitive data, targets crypto wallets, and accepts remote commands

The core infection steps above align with the sample text you uploaded.

Why developers should take this seriously

This campaign targets a habit that many developers barely notice anymore. Terminal prompts, failed package installs, and permission requests happen often enough that they rarely trigger panic on their own. That makes a fake npm install flow a useful disguise for attackers.

Web3 contract containing final stage URL and a key (Source – ReversingLabs)

The bigger problem is privilege. Once a user hands over a sudo password, the attacker no longer needs to rely only on user-level access. They can place files, run payloads, and maintain persistence with fewer restrictions. In this case, the final malware reportedly includes RAT capabilities aimed at data theft and wallet theft, which raises the financial risk as well as the security risk.

Indicators of compromise

The IoCs below come from the sample text you provided.

Package nameVersionSHA1
react-performance-suite2.0.0bdffc2f98ff422db9f9ddc190401cfcb686e3c32
react-performance-suite2.0.15928e3121f12f3c5d690bc7968b28b2f67835ef5
react-state-optimizer-core1.0.0cbe7c87293de7ab5853e2aef3f638d54c45f5c9f
react-state-optimizer-core3.0.3fe6ee1104c4b02be39819822ed959039ea313e67
react-fast-utilsa2.0.1e6cfaef4b50d2a4ddd8453bf5a91e81a092d6e09
ai-fast-auto-trader2.2.1963b79f59fb2c070a06b9a2af9db2b5512c1ed74
ai-fast-auto-trader2.2.6d22eb34facf13b5c1e820d9e6358eb4cd3797eaa
pkgnewfefame13.2.12a8c625660ad6bb7d7c953a147c84c0fcc75794b
carbon-mac-copy-cloner1.1.063783f6e59d20e2c664123b349f22dd53d1293d4
coinbase-desktop-sdk1.5.14cb9208d756dc4d4674801611d8d5f5ba79e76366
coinbase-desktop-sdk1.5.19d5ade32ac52140e6c25f50780dc4ff4d466faddb

What developers and security teams should do

  • Never enter a sudo or root password because an npm package asks for it during install
  • Review package authors, publish history, and repository age before installing lesser-known packages
  • Treat fake progress bars and unusually chatty install scripts as a warning sign
  • Scan dependencies in CI and local development pipelines
  • Audit GitHub repositories that suddenly add install steps, setup scripts, or remote fetch behavior
  • Block or alert on scripts that fetch payloads from Telegram or similar external channels

FAQ

What is the Ghost campaign?

It is a malicious npm supply chain campaign that uses fake install output to hide credential theft and RAT delivery. ReversingLabs says it began in early February 2026.

How does the attack steal the password?

The malicious package displays a realistic npm-style permission error and asks the developer for a sudo password. The prompt looks believable because permission issues during installs are common.

What does the final malware do?

ReversingLabs says the final-stage RAT can steal crypto wallets, collect sensitive data, and receive commands from an attacker-controlled server.

Is the campaign limited to npm?

No. Jamf Threat Labs says related activity also used GitHub repositories posing as legitimate developer tools and AI workflows.

Why is this campaign notable?

The fake install logs make the infection chain look normal, which helps the malware stay hidden from developers who expect messy or slow package installs.

Readers help support VPNCentral. We may get a commission if you buy through our links. Tooltip Icon

Read our disclosure page to find out how can you help VPNCentral sustain the editorial team Read more

User forum

0 messages