Cybersecurity researchers have disclosed details of a long-running npm supply chain malware campaign that pushes information stealers and remote access trojans (RAT) to compromised hosts.
The campaign has been codenamed MALFEX by CloudSEK and Checkmarx. The activity is assessed to be the work of a lone threat actor who appears to have published 12 packages since August 2023, eight of which have been flagged as malicious.
The attack is designed to infect Windows systems through three separate pathways –
A loader for Overlord, an open-source RAT written in Go that uses Solana transactions to extract the command-and-control (C2) address
A chain that installs movinlike, a Node.js stealer targeting Discord, browsers, Telegram, and cryptocurrency wallets, and
A downloader
The list of identified malicious packages is below –
tlxbnhd
tldriver
mxdriver
img-to-native
native-runner
function-flag (Still live)
function-color (Still live)
cdn-img-fetch (Still live)
In all, these packages have been collectively downloaded 40,767 times. Of these, 37,419 downloads correspond to “function-flag,” making it the largest driver of this activity. The package was first published in July 2024. The latest version was released on August 4, 2025.
The project description for the npm package features a welcome message written in Portuguese that states: “This project was created with a lot of love and dedication by the Malfex team, whose owner is Murizada.”
Three of the packages, “tlxbnhd,” “tldriver,” and “mxdriver,” act as Overlord RAT loaders, with the malicious code triggered via lifecycle hooks to download and run a Windows executable.
A second subset of the npm packages, such as “img-to-native,” requires “cdn-img-fetch” to retrieve and execute a Go executable, which then fetches a Node.js stealer capable of harvesting sensitive data.
Present within “function-flag” is a postinstall hook that runs a JavaScript payload to download a payload from a remote server. Each version of the package has been found to serve a payload from a different location. The “function-color” package embeds no payload of its own, but lists “function-flag” as a dependency.
“In 1.7.3, the current latest version, the postinstall script runs example.js, which calls the package’s ASCII art function with the Bloody font,” Checkmarx said. “That font value triggers a hidden routine that downloads node.exe from cdnzona.discloud.app, a host on a Brazilian application hosting service, saves it to %APPDATA%\node.exe, and runs it with its window hidden.”
Interestingly, Overload RAT has been observed in two other campaigns since July 2026: one involving the exploitation of WordPress flaws (CVE-2026-63030 and CVE-2026-60137, aka wp2shell) and a macOS campaign in which a fake Zoom installer is used to deploy the RAT. The fake Zoom installer campaign shares tactical overlaps with a suspected North Korea-aligned threat cluster dubbed UNK_DeadDrop.
“The operator is Portuguese-speaking, the git commits sit at -0300, one repository description is in Portuguese, and the GitHub display name and email give a common Brazilian handle,” CloudSEK said. “None of this is an argument that the campaign targets Brazil. It is a piece of attribution to the operator’s own linguistic space and nothing more. The delivery is npm and Discord, both of which are global; the second-stage targeting is opportunistic.”
📰 Original Source:TheHackerNews ✍️ Author: info@thehackernews.com (The Hacker News)
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Leave a Reply