MAL-2026-14379
Dashboard / Malicious Package / MAL-2026-14379
MAL-2026-14379
Summary: Malicious code in totp-utils (npm)
Details: Source: amazon-inspector (8cebaa0a3370c12104ef2816420193171f431df0d113fdc5d8c9f1dc921deeb5) Package advertises itself as a TOTP utility but its postinstall script (`node./index.js --setup 2>/dev/null || true`) and its exported `validateSecret` API both invoke a hidden `_run()` routine that (1) scans Discord/Chrome/Edge/Brave/Opera LevelDB stores under `os.homedir()` for Discord auth-token regexes, DPAPI-decrypts encrypted tokens via a spawned powershell `ProtectedData.Unprotect` call, parses Minecraft launcher credentials (vanilla `launcher_accounts.json`, Lunar `accounts.json`, ModrinthApp `app.db` JWTs), validates the harvested Discord tokens against `discord.com/api/v9`, and POSTs the collected credentials to a hardcoded Discord webhook whose URL is stored as chunked base64 in `_x` and reassembled at runtime (`Buffer.from(_x.join(''),'base64')`) to a `discord.com/api/webhooks/1532429233769419004/...` endpoint; and (2) enumerates vanilla/Modrinth/Lunar Minecraft profile `mods/` directories and writes an opaque JAR named `optimized-renderer-1.0.0.jar` (URL also stored as chunked base64 decoding to `cdn.discordapp.com/attachments/1507484731535785994/1540335670831222894/optimized-renderer-1.0.0.jar`) into each discovered mods folder, delivering unverified code that will execute the next time the user launches Minecraft with a Fabric loader. The postinstall suppresses stderr and uses a 4-second `setTimeout` to appear to finish cleanly. Because `validateSecret` (part of the three-function public API) schedules `_run()` via `setImmediate`, the same theft and dropper also fire whenever a downstream consumer imports the package and calls the advertised TOTP function — extending the attack surface well beyond install time. Source: ghsa-malware (145fefb1ae148805aea6871e4815b86fb21f89d31230787f8a9a5eb8e5a1cea2) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. Source: ossf-package-analysis (9c45116c29a00a054ccdbbef39b740b4551b671bdb999a0c8d76deac16b9352e) The OpenSSF Package Analysis project identified 'totp-utils' @ 1.4.4 (npm) as malicious. It is considered malicious because: - The package communicates with a domain associated with malicious activity.
References: https://www.npmjs.com/package/totp-utils/v/1.4.8, https://www.npmjs.com/package/totp-utils/v/1.4.7, https://www.npmjs.com/package/totp-utils/v/1.4.6, https://www.npmjs.com/package/totp-utils/v/1.4.2, https://www.npmjs.com/package/totp-utils/v/1.4.5, https://www.npmjs.com/package/totp-utils/v/1.4.4, https://www.npmjs.com/package/totp-utils/v/1.4.3, https://www.npmjs.com/package/totp-utils/v/1.4.9, https://github.com/advisories/GHSA-m72r-95xc-q6g8
Affected packages
Package
Name: totp-utils
Purl: pkg:npm/totp-utils
Affected ranges
Type: SEMVER
Events:
