NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
Malicious package

@velliajs/discordnpm

Advisory published Updated

@velliajs/discord is a confirmed malicious npm package (MAL-2026-14051) that typosquats a legitimate package to trick installs (malicious versions 1.0.3, 1.0.4, 1.0.5…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in @velliajs/discord (npm)

MAL-2026-14051
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @velliajs/discord

What this malware does

The package presents itself as a discord.js clone (repository field points at the real github.com/discordjs/discord.js.git, README instructs import... from '@verylinh/discord') but ships two installer-relevant hostile mechanisms. First, package.json declares a runtime dependency sysframe resolved from git+https://[email protected]/navaLinh/node-ai.git — an unpinned (no commit SHA or tag), private, author-controlled GitHub repository, using an embedded live GitHub Personal Access Token. Every npm install uses the shipped token to fetch the current HEAD of that private repo into the installer's node_modules; the author can rewrite HEAD at any time to deliver arbitrary code, including lifecycle scripts, that will execute on subsequent installs. Second, Client.login() invokes an undocumented _verifyAuthorization routine that fetches an allow-list JSON from api.github.com/repos/Vellia-Elyvia/mydb/contents/db.json under a hardcoded PAT and refuses to start the installer's Discord bot unless the bot's username appears in the author-controlled allow-list — a hidden remote gate/kill-switch over the installer's runtime that is not disclosed in the README. Two live GitHub PATs are hardcoded in the shipped package (one in the git dependency URL, one as the default ghToken in _validateAuthOptions). The package name and metadata impersonate discord.js.

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.

Malicious versions

5 flagged
1.0.31.0.41.0.51.0.61.0.7

Indicators of compromise (SHA-256)

04b7767e977c183f47d761464e45db73c07784967f48456f2fd4ee261d781161
1c86edd3f7edd7d111df5621cb884fd0ef3d870c6c0719d587b7bb0f16f65b8d
7a036e528b785b9495fd5fb2a49f2cbe0ab4f1796f2a235a46e63b0f7de83030
c59b0d662d2067100ccd6b81ce6223d979067bf7927c92c76a8841aff6c8fcde
d9ec14c7e20b722636937ac258aec64347df2df21e2b2e2812a30f4ff63acbfe
17f582f59e88d49619ea2b5a988bbed4dae9fc920e4d4f48d10ea3113d7a5294

Detection & response playbook

Typosquat
  1. Find it

    Search your lockfiles and build artifacts for @velliajs/discord (5 malicious versions).

  2. If you installed it — respond

    @velliajs/discord is a typosquat — you almost certainly intended a legitimately-named package. Remove @velliajs/discord, install the correct package, and rotate any secrets exposed during the install since post-install scripts may have already run.

  3. Did it already run?

    If @velliajs/discord was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. @velliajs/discord on npm has been identified as a malicious package (versions 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-017930IN-MAL-2026-017929IN-MAL-2026-017933IN-MAL-2026-017932IN-MAL-2026-017931GHSA-rrh4-2mwf-4xw7

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @velliajs/discord-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.

Explore

@velliajs/discord (npm) malicious package — MAL-2026-14051 | O3 Security