CWE-506
Allowed-with-ReviewEmbedded Malicious Code
Abstraction: Class · Status: Incomplete
The product contains code that appears to be malicious in nature.
548 vulnerabilities reference this CWE, most recent first.
GHSA-6FJR-M7V6-FPG9
Vulnerability from github – Published: 2018-08-06 21:41 – Updated: 2023-09-06 18:29The jquey package is malware that attempts to discover and exfiltrate sensitive data such as a user's private SSH key and bash history, sending them to attacker controlled locations.
All versions have been unpublished from the npm registry.
Recommendation
If you have found jquey installed in your environment, you should:
1. Delete the package
2. Clear your npm cache
3. Ensure it is not present in any other package.json files on your system
4. Regenerate your SSH keys, registry credentials, tokens, and any other sensitive credentials that may have been present in your bash history.
Additionally, any service which may have been exposed via credentials in your bash history or accessible via your ssh keys, such as a database, should be reviewed for indicators of compromise as well.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "jquey"
},
"versions": [
"1.0.1"
]
}
],
"aliases": [
"CVE-2017-16204"
],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2020-06-16T21:19:06Z",
"nvd_published_at": null,
"severity": "MODERATE"
},
"details": "The `jquey` package is malware that attempts to discover and exfiltrate sensitive data such as a user\u0027s private SSH key and bash history, sending them to attacker controlled locations. \n\nAll versions have been unpublished from the npm registry.\n\n\n## Recommendation\n\nIf you have found `jquey` installed in your environment, you should:\n1. Delete the package\n2. Clear your npm cache\n3. Ensure it is not present in any other package.json files on your system\n4. Regenerate your SSH keys, registry credentials, tokens, and any other sensitive credentials that may have been present in your bash history.\n\nAdditionally, any service which may have been exposed via credentials in your bash history or accessible via your ssh keys, such as a database, should be reviewed for indicators of compromise as well.",
"id": "GHSA-6fjr-m7v6-fpg9",
"modified": "2023-09-06T18:29:27Z",
"published": "2018-08-06T21:41:38Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2017-16204"
},
{
"type": "ADVISORY",
"url": "https://github.com/advisories/GHSA-6fjr-m7v6-fpg9"
},
{
"type": "WEB",
"url": "https://www.npmjs.com/advisories/544"
}
],
"schema_version": "1.4.0",
"severity": [],
"summary": "jquey is malware"
}
GHSA-6JP5-HH4C-8C5H
Vulnerability from github – Published: 2025-09-15 23:58 – Updated: 2025-09-15 23:58Impact
On 8 September 2025, an npm publishing account for error-ex was taken over after a phishing attack. Version 1.3.3 was published, functionally identical to the previous patch version, but with a malware payload added attempting to redirect cryptocurrency transactions to the attacker's own addresses from within browser environments.
Local environments, server environments, command line applications, etc. are not affected. If the package was used in a browser context (e.g. a direct <script> inclusion, or via a bundling tool such as Babel, Rollup, Vite, Next.js, etc.) there is a chance the malware still exists and such bundles will need to be rebuilt.
The malware seemingly only targets cryptocurrency transactions and wallets such as MetaMask. See references below for more information on the payload.
Patches
npm removed the offending package from the registry over the course of the day on 8 September, preventing further downloads from npm proper.
On 13 September, the package owner published new patch versions to help cache-bust those using private registries who might still have the compromised version cached. This version is functionally identical to the previously known-good version, published as a patch version bump above the compromised version.
Users should update to the latest patch version, completely remove their node_modules directory, clean their package manager's global cache, and rebuild any browser bundles from scratch.
Those operating private registries or registry mirrors should purge the offending versions from any caches.
References
- https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised
- https://socket.dev/blog/npm-author-qix-compromised-in-major-supply-chain-attack
- https://www.ox.security/blog/npm-packages-compromised/
Point of Contact
In the event suspicious behavior is still observed for the package listed in this security advisory after performing all of the above cleaning operations (see Patches above), please reach out via one of the following channels of communication:
- Bluesky, compromised publishing account owner: https://bsky.app/profile/bad-at-computer.bsky.social
debugrepository, tracking issue (applies to all packages affected in the breach): https://github.com/debug-js/debug/issues/1005
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "error-ex"
},
"ranges": [
{
"events": [
{
"introduced": "1.3.3"
},
{
"fixed": "1.3.4"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1.3.3"
]
}
],
"aliases": [
"CVE-2025-59330"
],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2025-09-15T23:58:03Z",
"nvd_published_at": "2025-09-15T20:15:39Z",
"severity": "HIGH"
},
"details": "### Impact\nOn 8 September 2025, an npm publishing account for `error-ex` was taken over after a phishing attack. Version `1.3.3` was published, functionally identical to the previous patch version, but with a malware payload added attempting to redirect cryptocurrency transactions to the attacker\u0027s own addresses from within browser environments.\n\nLocal environments, server environments, command line applications, etc. are not affected. If the package was used in a browser context (e.g. a direct `\u003cscript\u003e` inclusion, or via a bundling tool such as Babel, Rollup, Vite, Next.js, etc.) there is a chance the malware still exists and such bundles will need to be rebuilt.\n\nThe malware seemingly only targets cryptocurrency transactions and wallets such as MetaMask. See references below for more information on the payload.\n\n### Patches\nnpm removed the offending package from the registry over the course of the day on 8 September, preventing further downloads from npm proper.\n\nOn 13 September, the package owner published new patch versions to help cache-bust those using private registries who might still have the compromised version cached. This version is functionally identical to the previously known-good version, published as a patch version bump above the compromised version.\n\nUsers should update to the latest patch version, completely remove their `node_modules` directory, clean their package manager\u0027s global cache, and rebuild any browser bundles from scratch.\n\nThose operating private registries or registry mirrors should purge the offending versions from any caches.\n\n### References\n- https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised\n- https://socket.dev/blog/npm-author-qix-compromised-in-major-supply-chain-attack\n- https://www.ox.security/blog/npm-packages-compromised/\n\n### Point of Contact\nIn the event suspicious behavior is still observed for the package listed in this security advisory after performing all of the above cleaning operations (see _Patches_ above), please reach out via one of the following channels of communication:\n\n- Bluesky, compromised publishing account owner: https://bsky.app/profile/bad-at-computer.bsky.social\n- `debug` repository, tracking issue (applies to all packages affected in the breach): https://github.com/debug-js/debug/issues/1005",
"id": "GHSA-6jp5-hh4c-8c5h",
"modified": "2025-09-15T23:58:04Z",
"published": "2025-09-15T23:58:03Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/Qix-/node-error-ex/security/advisories/GHSA-6jp5-hh4c-8c5h"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-59330"
},
{
"type": "WEB",
"url": "https://github.com/debug-js/debug/issues/1005"
},
{
"type": "PACKAGE",
"url": "https://github.com/Qix-/node-error-ex"
},
{
"type": "WEB",
"url": "https://socket.dev/blog/npm-author-qix-compromised-in-major-supply-chain-attack"
},
{
"type": "WEB",
"url": "https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised"
},
{
"type": "WEB",
"url": "https://www.ox.security/blog/npm-packages-compromised"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N/E:A/U:Red",
"type": "CVSS_V4"
}
],
"summary": "error-ex@1.3.3 contains malware after npm account takeover"
}
GHSA-6M6M-J2HM-PXRG
Vulnerability from github – Published: 2020-09-03 17:37 – Updated: 2021-09-30 19:33All versions of cicada-render contain malicious code. The package uploads system information to a remote server, downloads a file and executes it.
Recommendation
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.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "cicada-render"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2020-08-31T18:45:31Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "All versions of `cicada-render` contain malicious code. The package uploads system information to a remote server, downloads a file and executes it.\n\n\n## Recommendation\n\nAny 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.\n\nThe 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.",
"id": "GHSA-6m6m-j2hm-pxrg",
"modified": "2021-09-30T19:33:36Z",
"published": "2020-09-03T17:37:05Z",
"references": [
{
"type": "WEB",
"url": "https://www.npmjs.com/advisories/1051"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Malicious Package in cicada-render"
}
GHSA-6MRQ-7R7M-HH4P
Vulnerability from github – Published: 2020-09-03 22:52 – Updated: 2021-09-30 16:21Version 0.8.0 contained malicious code. The package targeted the Ethereum cryptocurrency and performed transactions to wallets not controlled by the user.
Recommendation
Remove the package from your environment. Ensure no Ethereum funds were compromised.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "hs-sha3"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2020-08-31T18:53:24Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "Version 0.8.0 contained malicious code. The package targeted the Ethereum cryptocurrency and performed transactions to wallets not controlled by the user.\n\n\n## Recommendation\n\nRemove the package from your environment. Ensure no Ethereum funds were compromised.",
"id": "GHSA-6mrq-7r7m-hh4p",
"modified": "2021-09-30T16:21:58Z",
"published": "2020-09-03T22:52:58Z",
"references": [
{
"type": "WEB",
"url": "https://www.npmjs.com/advisories/1275"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Malicious Package in hs-sha3"
}
GHSA-6QC7-JGQ7-34RF
Vulnerability from github – Published: 2020-09-02 20:18 – Updated: 2021-10-01 14:02All versions of exprss typosquatted a popular package of similar name and tracked users who had installed the incorrect package. The package uploaded information to a remote server including: name of the downloaded package, name of the intended package, the Node version and whether the process was running as sudo. There is no further compromise.
Recommendation
Remove the package from your dependencies and always ensure package names are typed correctly upon installation.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "exprss"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2020-08-31T18:38:09Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "All versions of `exprss` typosquatted a popular package of similar name and tracked users who had installed the incorrect package. The package uploaded information to a remote server including: name of the downloaded package, name of the intended package, the Node version and whether the process was running as sudo. There is no further compromise.\n\n\n## Recommendation\n\nRemove the package from your dependencies and always ensure package names are typed correctly upon installation.",
"id": "GHSA-6qc7-jgq7-34rf",
"modified": "2021-10-01T14:02:31Z",
"published": "2020-09-02T20:18:18Z",
"references": [
{
"type": "WEB",
"url": "https://www.npmjs.com/advisories/851"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Malicious Package in exprss"
}
GHSA-6QGX-F452-7699
Vulnerability from github – Published: 2020-09-03 23:28 – Updated: 2021-10-01 17:07All versions of superhappyfuntime contain malicious code. The package downloads and runs a script that opens a reverse shell in the system.
Recommendation
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.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "superhappyfuntime"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2020-08-31T18:54:48Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "All versions of `superhappyfuntime` contain malicious code. The package downloads and runs a script that opens a reverse shell in the system.\n\n\n## Recommendation\n\nAny 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.\n\nThe 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.",
"id": "GHSA-6qgx-f452-7699",
"modified": "2021-10-01T17:07:59Z",
"published": "2020-09-03T23:28:39Z",
"references": [
{
"type": "WEB",
"url": "https://www.npmjs.com/advisories/1314"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Malicious Package in superhappyfuntime"
}
GHSA-6V2J-VR4H-F632
Vulnerability from github – Published: 2026-02-12 22:10 – Updated: 2026-02-12 22:10This attempts to typosquat the existing crate finch_cli to steal credentials from local files.
The malicious crate had 1 version published on 2025-12-08 and had been downloaded 18 times. There were no crates depending on this crate on crates.io.
Thanks to Matthias Zepper of NGI Sweden for reporting this to the crates.io team!
{
"affected": [
{
"package": {
"ecosystem": "crates.io",
"name": "finch_cli_rust"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2026-02-12T22:10:47Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "This attempts to typosquat the existing crate [`finch_cli`](https://crates.io/crates/finch_cli) to steal credentials from local files.\n\nThe malicious crate had 1 version published on 2025-12-08 and had been downloaded 18 times. There were no crates depending on this crate on crates.io.\n\nThanks to Matthias Zepper of [NGI Sweden](https://ngisweden.scilifelab.se/) for reporting this to the crates.io team!",
"id": "GHSA-6v2j-vr4h-f632",
"modified": "2026-02-12T22:10:47Z",
"published": "2026-02-12T22:10:47Z",
"references": [
{
"type": "WEB",
"url": "https://rustsec.org/advisories/RUSTSEC-2025-0152.html"
}
],
"schema_version": "1.4.0",
"severity": [],
"summary": "`finch_cli_rust` was removed from crates.io for malicious code"
}
GHSA-6XG2-CF6H-X4V8
Vulnerability from github – Published: 2020-09-03 21:53 – Updated: 2021-09-29 20:58Version 2.0.2 contained malicious code. The package targeted the Ethereum cryptocurrency and performed transactions to wallets not controlled by the user.
Recommendation
Remove the package from your environment. Ensure no Ethereum funds were compromised.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "buffer-por"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2020-08-31T18:52:06Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "Version 2.0.2 contained malicious code. The package targeted the Ethereum cryptocurrency and performed transactions to wallets not controlled by the user.\n\n\n## Recommendation\n\nRemove the package from your environment. Ensure no Ethereum funds were compromised.",
"id": "GHSA-6xg2-cf6h-x4v8",
"modified": "2021-09-29T20:58:54Z",
"published": "2020-09-03T21:53:05Z",
"references": [
{
"type": "WEB",
"url": "https://www.npmjs.com/advisories/1243"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Malicious Package in buffer-por"
}
GHSA-6XM4-P6R2-MWRC
Vulnerability from github – Published: 2020-09-03 22:47 – Updated: 2021-09-30 16:14Version 2.0.2 contained malicious code. The package targeted the Ethereum cryptocurrency and performed transactions to wallets not controlled by the user.
Recommendation
Remove the package from your environment. Ensure no Ethereum funds were compromised.
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "cuffer-xor"
},
"ranges": [
{
"events": [
{
"introduced": "0.0.0"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2020-08-31T18:53:12Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "Version 2.0.2 contained malicious code. The package targeted the Ethereum cryptocurrency and performed transactions to wallets not controlled by the user.\n\n\n## Recommendation\n\nRemove the package from your environment. Ensure no Ethereum funds were compromised.",
"id": "GHSA-6xm4-p6r2-mwrc",
"modified": "2021-09-30T16:14:12Z",
"published": "2020-09-03T22:47:30Z",
"references": [
{
"type": "WEB",
"url": "https://www.npmjs.com/advisories/1270"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Malicious Package in cuffer-xor"
}
GHSA-6XWP-CP5H-Q856
Vulnerability from github – Published: 2026-05-19 20:28 – Updated: 2026-05-19 20:28Summary
Between 2026-05-11 20:19 UTC and 22:56 UTC, an attacker used a compromised npm publish token to publish 18 malicious versions of @beproduct/nestjs-auth (0.1.2 through 0.1.19). The packages contained payloads from the Mini Shai-Hulud npm supply-chain worm campaign described by Aikido Security.
npm Security removed the malicious versions from the registry shortly after publication, but anyone who ran npm install @beproduct/nestjs-auth resolving to any version in the affected range during that window executed the malicious postinstall script and is potentially compromised.
Version 0.1.20 is a clean republish from the original 0.1.1 source tree.
Impact
The postinstall payload attempted to harvest:
- npm tokens (from
~/.npmrc) - GitHub personal access tokens, OAuth tokens (
gho_*), and Actions OIDC tokens - AWS credentials (from environment variables and
~/.aws/credentials) - HashiCorp Vault tokens
- Other secrets present in environment variables
Exfiltration target: https://filev2.getsession.org. The worm also wrote persistence artefacts (tanstack_runner.js, router_init.js, setup.mjs, plus IDE-hook configurations in .claude/ and .vscode/) into the developer's working tree where the malicious install ran.
Indicators of compromise
| Type | Value |
|---|---|
| File name (payload) | tanstack_runner.js, router_init.js, router_runtime.js |
| SHA-256 (tanstack_runner.js) | 2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96 |
| SHA-256 (router_init.js) | ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c |
| Exfil endpoint | filev2.getsession.org |
| Cloud metadata probe | 169.254.169.254/latest/meta-data/iam/security-credentials/ |
| npm token endpoint | registry.npmjs.org/-/npm/v1/tokens |
| Vault probe | vault.svc.cluster.local:8200 |
| IDE hook pattern | .claude/settings.json SessionStart hook + .vscode/tasks.json runOn: "folderOpen" running node .claude/setup.mjs or node .vscode/setup.mjs |
Mitigation
If you installed any version in the range >=0.1.2 <=0.1.19:
- Remove the package and clean the npm cache:
bash npm uninstall @beproduct/nestjs-auth npm cache clean --force - Install the clean version:
bash npm install @beproduct/nestjs-auth@0.1.20 - Rotate every credential present in the install environment, including:
- All npm publish tokens (
https://www.npmjs.com/settings/<you>/tokens) - All GitHub PATs and OAuth tokens (
https://github.com/settings/applications+https://github.com/settings/tokens) - AWS access keys
- HashiCorp Vault tokens
- Any other secret that was in env vars or config files at install time
- Scan affected hosts for the indicators of compromise above. If any are found, treat the host as compromised and reimage.
- Check committed repository history for unexpected additions in
.claude/or.vscode/directories — the worm is known to commitsetup.mjs+ hook configs to PR branches via automated agent runtimes.
Timeline (UTC)
| Time | Event |
|---|---|
| 2026-05-11 20:19:43 | First malicious version (0.1.2) published |
| 2026-05-11 22:56:39 | Final malicious version (0.1.19) published — 18 versions in 2h37m |
| 2026-05-12 ~14:12 | npm Security removes the malicious versions from the registry |
| 2026-05-13 | BeProduct discovers the incident via Aikido's public disclosure |
| 2026-05-14 | Compromised npm publish token revoked; BeProduct GitHub OAuth credentials rotated |
| 2026-05-14 | Clean release 0.1.20 published; this advisory filed |
Root cause
The compromised npm publish token was harvested by a Mini-Shai-Hulud-infected transitive dependency in an automated GitHub coding-agent runtime that had read access to the NPM_TOKEN GitHub Actions secret for an unrelated repository under the same npm publisher account. The publish itself was performed by the attacker against the public npm registry; the source repository for this package was not modified by the attacker.
References
- https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised
- https://www.aikido.dev/blog/checklist-github-actions ```
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "@beproduct/nestjs-auth"
},
"ranges": [
{
"events": [
{
"introduced": "0.1.2"
},
{
"last_affected": "0.1.19"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-46412"
],
"database_specific": {
"cwe_ids": [
"CWE-506"
],
"github_reviewed": true,
"github_reviewed_at": "2026-05-19T20:28:07Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "## Summary\n\nBetween 2026-05-11 20:19 UTC and 22:56 UTC, an attacker used a compromised npm publish token to publish 18 malicious versions of `@beproduct/nestjs-auth` (0.1.2 through 0.1.19). The packages contained payloads from the **Mini Shai-Hulud** npm supply-chain worm campaign described by [Aikido Security](https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised).\n\nnpm Security removed the malicious versions from the registry shortly after publication, but anyone who ran `npm install @beproduct/nestjs-auth` resolving to any version in the affected range during that window executed the malicious postinstall script and is potentially compromised.\n\nVersion `0.1.20` is a clean republish from the original `0.1.1` source tree.\n\n## Impact\n\nThe postinstall payload attempted to harvest:\n\n- npm tokens (from `~/.npmrc`)\n- GitHub personal access tokens, OAuth tokens (`gho_*`), and Actions OIDC tokens\n- AWS credentials (from environment variables and `~/.aws/credentials`)\n- HashiCorp Vault tokens\n- Other secrets present in environment variables\n\nExfiltration target: `https://filev2.getsession.org`. The worm also wrote persistence artefacts (`tanstack_runner.js`, `router_init.js`, `setup.mjs`, plus IDE-hook configurations in `.claude/` and `.vscode/`) into the developer\u0027s working tree where the malicious install ran.\n\n## Indicators of compromise\n\n| Type | Value |\n|---|---|\n| File name (payload) | `tanstack_runner.js`, `router_init.js`, `router_runtime.js` |\n| SHA-256 (tanstack_runner.js) | `2ec78d556d696e208927cc503d48e4b5eb56b31abc2870c2ed2e98d6be27fc96` |\n| SHA-256 (router_init.js) | `ab4fcadaec49c03278063dd269ea5eef82d24f2124a8e15d7b90f2fa8601266c` |\n| Exfil endpoint | `filev2.getsession.org` |\n| Cloud metadata probe | `169.254.169.254/latest/meta-data/iam/security-credentials/` |\n| npm token endpoint | `registry.npmjs.org/-/npm/v1/tokens` |\n| Vault probe | `vault.svc.cluster.local:8200` |\n| IDE hook pattern | `.claude/settings.json` `SessionStart` hook + `.vscode/tasks.json` `runOn: \"folderOpen\"` running `node .claude/setup.mjs` or `node .vscode/setup.mjs` |\n\n## Mitigation\n\nIf you installed any version in the range `\u003e=0.1.2 \u003c=0.1.19`:\n\n1. **Remove the package and clean the npm cache:**\n ```bash\n npm uninstall @beproduct/nestjs-auth\n npm cache clean --force\n ```\n2. **Install the clean version:**\n ```bash\n npm install @beproduct/nestjs-auth@0.1.20\n ```\n3. **Rotate every credential present in the install environment**, including:\n - All npm publish tokens (`https://www.npmjs.com/settings/\u003cyou\u003e/tokens`)\n - All GitHub PATs and OAuth tokens (`https://github.com/settings/applications` + `https://github.com/settings/tokens`)\n - AWS access keys\n - HashiCorp Vault tokens\n - Any other secret that was in env vars or config files at install time\n4. **Scan affected hosts** for the indicators of compromise above. If any are found, treat the host as compromised and reimage.\n5. **Check committed repository history** for unexpected additions in `.claude/` or `.vscode/` directories \u2014 the worm is known to commit `setup.mjs` + hook configs to PR branches via automated agent runtimes.\n\n## Timeline (UTC)\n\n| Time | Event |\n|---|---|\n| 2026-05-11 20:19:43 | First malicious version (`0.1.2`) published |\n| 2026-05-11 22:56:39 | Final malicious version (`0.1.19`) published \u2014 18 versions in 2h37m |\n| 2026-05-12 ~14:12 | npm Security removes the malicious versions from the registry |\n| 2026-05-13 | BeProduct discovers the incident via Aikido\u0027s public disclosure |\n| 2026-05-14 | Compromised npm publish token revoked; BeProduct GitHub OAuth credentials rotated |\n| 2026-05-14 | Clean release `0.1.20` published; this advisory filed |\n\n## Root cause\n\nThe compromised npm publish token was harvested by a Mini-Shai-Hulud-infected transitive dependency in an automated GitHub coding-agent runtime that had read access to the `NPM_TOKEN` GitHub Actions secret for an unrelated repository under the same npm publisher account. The publish itself was performed by the attacker against the public npm registry; the source repository for this package was not modified by the attacker.\n\n## References\n\n- https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised\n- https://www.aikido.dev/blog/checklist-github-actions\n```",
"id": "GHSA-6xwp-cp5h-q856",
"modified": "2026-05-19T20:28:07Z",
"published": "2026-05-19T20:28:07Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/BeProduct/beproduct-org-nestjs-auth/security/advisories/GHSA-6xwp-cp5h-q856"
},
{
"type": "PACKAGE",
"url": "https://github.com/BeProduct/beproduct-org-nestjs-auth"
},
{
"type": "WEB",
"url": "https://www.aikido.dev/blog/checklist-github-actions"
},
{
"type": "WEB",
"url": "https://www.aikido.dev/blog/mini-shai-hulud-is-back-tanstack-compromised"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"type": "CVSS_V3"
}
],
"summary": "Malicious code in @beproduct/nestjs-auth (0.1.2 through 0.1.19) \u2014 Mini Shai-Hulud worm"
}
Mitigation
Remove the malicious code and start an effort to ensure that no more malicious code exists. This may require a detailed review of all code, as it is possible to hide a serious attack in only one or two lines of code. These lines may be located almost anywhere in an application and may have been intentionally obfuscated by the attacker.
CAPEC-442: Infected Software
An adversary adds malicious logic, often in the form of a computer virus, to otherwise benign software. This logic is often hidden from the user of the software and works behind the scenes to achieve negative impacts. Many times, the malicious logic is inserted into empty space between legitimate code, and is then called when the software is executed. This pattern of attack focuses on software already fielded and used in operation as opposed to software that is still under development and part of the supply chain.
CAPEC-448: Embed Virus into DLL
An adversary tampers with a DLL and embeds a computer virus into gaps between legitimate machine instructions. These gaps may be the result of compiler optimizations that pad memory blocks for performance gains. The embedded virus then attempts to infect any machine which interfaces with the product, and possibly steal private data or eavesdrop.
CAPEC-636: Hiding Malicious Data or Code within Files
Files on various operating systems can have a complex format which allows for the storage of other data, in addition to its contents. Often this is metadata about the file, such as a cached thumbnail for an image file. Unless utilities are invoked in a particular way, this data is not visible during the normal use of the file. It is possible for an attacker to store malicious data or code using these facilities, which would be difficult to discover.