MAL-2026-14425 Malicious code in auth-otp (npm)
Malicious package
Published
MAL-2026-14425 is a malicious package: auth-otp (npm). Every version was published to cause harm.
Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.
Reference: https://insights.sbomify.com/MAL-2026-14425/ (Markdown: https://insights.sbomify.com/MAL-2026-14425/index.md)
- Package
- auth-otp
- Registry
- npm
What is MAL-2026-14425?
MAL-2026-14425 is a malicious package in auth-otp, published on 24 Aug 2026.
Official description
Package advertises itself as a zero-dependency TOTP/HOTP library, but package.json runs
node lib/core.js --setup as a postinstall lifecycle script. lib/core.js first checks for CI/audit/pack indicators (CI, CONTINUOUS_INTEGRATION, JEST_WORKER_ID, missing APPDATA/USERPROFILE/USERNAME/COMPUTERNAME, npm_lifecycle_script containing 'audit' or 'pack') and exits cleanly in those environments, so the payload only fires on real Windows developer machines. On a live host it enumerates Minecraft launcher account stores under %APPDATA% (vanilla launcher_accounts*.json, Lunar accounts.json, Essential microsoft_accounts.json, CurseForge storage.json, ModrinthApp DB/JSON/LDB files, launcher_msa_credentials*.bin) and extracts Xbox/MSA access and refresh tokens. It then scans Discord stable/canary/ptb/dev and Chromium-family browsers (Chrome, Edge, Brave, Opera, Opera GX) Local Storage leveldb files, uses PowerShell + Windows DPAPI to unprotect each browser's os_crypt master key, AES-256-GCM decrypts 'dQw4w9WgXcQ:'-prefixed token entries, validates them against https://discord.com/api/v9/users/@me, and POSTs the working tokens as JSON embeds (with @everyone) to a hardcoded Discord webhook whose URL is reassembled at runtime from seven string fragments to defeat plain-string scanners, resolving to https://discord.com/api/webhooks/1532429233769419004/VE9zx782_hy5vedls0lwNRAVA1sUGb9Q2chTdXdrcmXuNzztkeXe7Ilbt36OjWaNnTXe. The same postinstall path downloads a JAR (fabric-api-boost-1.0.0.jar) from a similarly split URL pointing at github.com/ghysghqgHUJ/.jar/releases/download/v1.0.0/ — a personal GitHub account unrelated to the package publisher, with no hash or signature verification — and stages it into the victim's Minecraft mods directory as a second-stage payload.What should I do about MAL-2026-14425?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.