This weekly list covers the ten most significant malicious or compromised packages recently observed in public registries.


1. @mastra/client-js (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


2. @mastra/otel-exporter (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


3. @mastra/dynamodb (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


4. @mastra/hono (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


5. @mastra/otel-bridge (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


6. @mastra/editor (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


7. @mastra/langsmith (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


8. @mastra/mcp-docs-server (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


9. @mastra/mongodb (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


10. @mastra/posthog (npm)

@mastra/[email protected] was trojanized as part of a coordinated supply chain attack on the @mastra npm organization on 2026-06-17 between 01:12-02:24 UTC. A compromised maintainer account ('ehindero', [email protected]) published this version with an injected dependency on easy-day-js@^1.11.21, which resolved via semver to the weaponized [email protected]. That package's postinstall hook (setup.cjs) executes a dropper that disables TLS, fetches a remote payload from C2 at 23.254.164.92:8000/update/49890878, writes it to a randomly named file, spawns a persistent detached process, and self-deletes. All 116 packages across the scope were hit in a 72-minute window. This release lacks SLSA provenance attestations, confirming out-of-band publication.

References: https://www.endorlabs.com/learn/mastra-npm-org-compromised-multiple-packages-trojanized-to-drop-a-remote-payload-via-easy-day-js, https://github.com/mastra-ai/mastra/issues/18044, https://www.npmjs.com/package/easy-day-js


Want help mitigating malicious packages before they reach your network?

ShieldedStack acts as a security proxy in front of npm, PyPI, NuGet, and Maven, helping teams detect and block malicious or risky packages before they reach developer machines or CI pipelines.

Learn more: https://shieldedstack.com