Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
Back to malware
Malware

bada stealer

Bada Stealer is a Windows-targeting information-stealing malware delivered via a malicious npm package, “duer-js” (published by npm user “luizaearlyx”), and self-identifies in code as “bada stealer.” The package uses heavy multi-stage JavaScript obfuscation (including a very long eval()-wrapped payload, nested URI-encoding, and XOR-based string decoding) and includes anti-tampering logic intended to hinder analysis.

On execution, Bada Stealer aggressively terminates certain processes (including browser and Telegram processes) and harvests sensitive data from the host. It targets Discord heavily: it enumerates multiple Discord variants (discord, discordcanary, discordptb, discorddevelopment, lightcord), extracts tokens from LevelDB data under %APPDATA% and %LOCALAPPDATA%, and uses those tokens to query Discord endpoints to collect account/user information (e.g., /users/@me), Nitro type, billing/payment sources (/billing/payment-sources), friends, and guilds. It also searches for Discord 2FA backup codes by looking for “discord_backup_codes” on disk.

It also steals data from Chromium-based browsers (Chrome, Edge, Brave, Opera, Yandex), including passwords (from “Login Data”/password databases, decrypted with Windows DPAPI where applicable), cookies (from Network\Cookies and Network\LxnyCookies), and autofill/credit-card data (from “Web Data”). It enumerates multiple browser profiles (Default, Profile 1–5, Guest). Additional collection includes cryptocurrency wallet artifacts (including Exodus wallet data and browser-extension wallet data via extension settings paths), Steam configuration (zipping “C:\Program Files (x86)\Steam\config”), and system metadata such as hostname, OS version, uptime, RAM, CPU count, username, working directory, temp directory, and external/public IP.

Exfiltration is primarily performed via an attacker-controlled Discord webhook (the report provides: hxxps://discord.com/api/webhooks/1455324432548499496/6oMVbi2PYDxrBiOtHe2tpBSUOdBJpz2RDEiwLkHUqeqJbgIPiONHafMP5tHXYjAVK2R3). A secondary exfiltration path uses the legitimate GoFile service by querying https://api.gofile.io/servers and uploading to https://<server>.gofile.io/uploadFile, then sending the resulting download URL back to the same Discord webhook.

The malware is multi-stage: the first-stage downloads a second-stage JavaScript payload from hxxps://ghostbin.axel.org/paste/yckfb/raw and persists by overwriting Discord Desktop’s local index.js within Discord application directories under %LOCALAPPDATA%, causing execution on Discord startup. The injected Discord component abuses Electron’s webContents.debugger API to intercept network events and capture plaintext credentials, MFA codes, session tokens, and payment card details in real time from endpoints including /login, /register, /mfa/totp, /mfa/codes-verification, and /@me, and exfiltrates to the same webhook. The injected payload includes self-update logic referencing https://raw.githubusercontent.com/xSalca/Viral/main/index.js.

The report notes that uninstalling the npm package alone is insufficient due to Discord injection/persistence. JFrog reported the package had 528 downloads and detections in JFrog Xray/JFrog Curation under ID XRAY-938808. The report also provides a second-stage payload hash: a91dd2e6a5ab21b8dd3bac7fc9be928b0764075fa71e33bc5ecd2f237b1f82c3.

Share:
For your environment

Hunt this family in your stack

Mallory pivots from this family to the IOCs, detections, and named campaigns that touch your stack, and pages you when something new lands.

MITRE ATT&CK

Techniques & procedures

20 distinct techniques documented for this family, organized by ATT&CK tactic.

Initial Access

1 technique
T1195.001Compromise Software Dependencies and Development ToolsEvidence3

"A newly discovered malicious NPM package, dubbed duer-js, is being used to distribute an advanced information-stealing malware... Published by the user 'luizaearlyx'"

Execution

1 technique
T1574Hijack Execution FlowEvidence1

"injects it into the Discord desktop application’s Electron environment by overwriting Discord’s own index.js file"

Persistence

1 technique
T1547.001Registry Run Keys / Startup FolderEvidence3

"does not remove... any additional files copied into startup locations... clearing any leftover node.exe or related executables from Windows startup folders"

Privilege Escalation

1 technique
T1547.001Registry Run Keys / Startup FolderEvidence3

"does not remove... any additional files copied into startup locations... clearing any leftover node.exe or related executables from Windows startup folders"

Stealth

3 techniques
T1027Obfuscated Files or InformationEvidence3

"index.js... a single extremely long line of JavaScript wrapped inside an eval() call... heavily obfuscated... nested layers of URI-encoding, dynamic evaluation, and XOR-based string decoding"

T1497Virtualization/Sandbox EvasionEvidence2

“code has anti-tempering protection… bypass or disable the anti-tempering in order to run the malicious code… ‘Error: the code has been tampered!’”

T1574Hijack Execution FlowEvidence1

"injects it into the Discord desktop application’s Electron environment by overwriting Discord’s own index.js file"

Credential Access

6 techniques
T1040Network SniffingEvidence1

“attaching a debugger to the client's internal web contents to intercept sensitive network traffic… listens for Network.responseReceived… uses Network.getResponseBody and Network.getRequestPostData to pull the plaintext email, password… token”

T1056Input CaptureEvidence1

"attaches a debugger to webContents... capture plaintext emails, passwords, session tokens, 2FA codes... and even live payment details"

T1528Steal Application Access TokenEvidence1

“Discord Tokens from Discord installs (Local Storage / leveldb)… Per-token: user info… billing/payment sources…”

T1539Steal Web Session CookieEvidence2

“Cookies from Network\Cookies… Wallets cookie dirs…”

T1555Credentials from Password StoresEvidence2

“Passwords… (decrypted via DPAPI where used).”

T1555.003Credentials from Web BrowsersEvidence3

"extracting passwords, cookies, autofill entries, and stored credit card data from their local databases and Web Data files"

Discovery

2 techniques
T1040Network SniffingEvidence1

“attaching a debugger to the client's internal web contents to intercept sensitive network traffic… listens for Network.responseReceived… uses Network.getResponseBody and Network.getRequestPostData to pull the plaintext email, password… token”

T1497Virtualization/Sandbox EvasionEvidence2

“code has anti-tempering protection… bypass or disable the anti-tempering in order to run the malicious code… ‘Error: the code has been tampered!’”

Collection

4 techniques
T1005Data from Local SystemEvidence3

“System/info: hostname, OS version, uptime, RAM, CPU count, username… IP…”

T1056Input CaptureEvidence1

"attaches a debugger to webContents... capture plaintext emails, passwords, session tokens, 2FA codes... and even live payment details"

T1213Data from Information RepositoriesEvidence2

“2FA backup codes (searches for discord_backup_codes in user dirs and exfiltrates them).”

T1560Archive Collected DataEvidence2

“zips %APPDATA%\Exodus\exodus.wallet… uploads as Exodus.zip… zips… Steam\config and uploads as steam.zip.”

Command and Control

2 techniques
T1071.001Web ProtocolsEvidence2

"sent directly to a hard-coded Discord webhook"

T1105Ingress Tool TransferEvidence3

"a self-update mechanism pointing to a GitHub-hosted script line"

Exfiltration

2 techniques
T1567Exfiltration Over Web ServiceEvidence1

"All stolen information gets transmitted to attackers through a Discord webhook, with a backup exfiltration method using Gofile cloud storage."

T1567.002Exfiltration to Cloud StorageEvidence2

“secondary backup exfiltration method via Gofile… gets a server address from https://api.gofile.io/servers , then uploads… /uploadFile… returns… a download url… sends that download url to the discord webhook”

Impact

1 technique
T1489Service StopEvidence2

"When first executed, it terminates running browser and Telegram processes to access locked files."

Other

1 technique
T1562.001Disable or Modify ToolsEvidence1

“The malware kills browsers and telegram processes before proceeding to information stealing”

ACTIVITY FEED

Recent activity

5 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.

jfrog researchNews
Feb 23, 2026
JFrog Security Research

A Windows-targeting information stealer (infostealer) embedded in a malicious npm package (duer-js), described as a complex multi-payload stealer.

Read more
the hacker newsNews
Feb 12, 2026
Lazarus Campaign Plants Malicious Packages in npm and PyPI Ecosystems

Windows information stealer delivered via the malicious npm package "duer-js"; steals browser credentials/cookies/autofill, Discord tokens, crypto wallet data, and system info; exfiltrates to a Discord webhook and Gofile; downloads a secondary payload that persists via Discord Desktop startup and steals payment methods.

Read more
cyber security newsNews
Feb 12, 2026
Sophisticated 'duer-js' NPM Package Distributes 'Bada Stealer' Malware Targeting Windows and Discord Users - Cyber Security News

Information-stealing malware delivered via a malicious NPM package. It establishes persistence, terminates browser/Telegram processes to access locked files, steals Discord tokens and billing/Nitro/2FA backup codes, decrypts and exfiltrates browser passwords/cookies/autofill/credit cards using Windows DPAPI, targets crypto wallets (e.g., Exodus and extension wallets), and steals Steam configuration data. Exfiltration occurs via Discord webhooks with a backup channel using Gofile cloud storage; it also injects into Discord’s startup process to monitor/steal data whenever Discord runs.

Read more
gbhackersNews
Feb 12, 2026
Malicious 'duer-js' NPM Package Distributes 'Bada Stealer' Malware Targeting Windows and Discord Users

JavaScript-based infostealer delivered via a malicious NPM package. It targets Windows systems, stealing Chromium-browser credentials (passwords, cookies, autofill, credit cards), crypto-wallet artifacts, Steam files, and extensive Discord data (tokens, user info). It exfiltrates via a hard-coded Discord webhook with a secondary channel using Gofile. A second-stage payload injects into the Discord desktop client (Electron) by overwriting Discord’s index.js to intercept login/MFA/payment data in plaintext via webContents debugging APIs.

Read more
What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets match these IOCs, which detections are missing, which campaigns to expect next, and what to do in the next 30 minutes.
IOC matching

Match every observed IP, domain, and hash against your live telemetry.

Threat actor attribution

Named campaigns wielding this family, with evidence pinned to each claim.

Exploited vulnerabilities

CVEs this family uses for access and lateral movement.

Detection signatures

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

MITRE ATT&CK mapping20

Every documented technique, ranked by evidence weight.

Researcher chatter

Reddit, Mastodon, and CTI community discussion around this family.