MAL-2026-10894 Malicious code in exodus-checkout (npm)
Malicious package
Published
MAL-2026-10894 is a malicious package: exodus-checkout (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-10894/ (Markdown: https://insights.sbomify.com/MAL-2026-10894/index.md)
- Package
- exodus-checkout
- Registry
- npm
What is MAL-2026-10894?
MAL-2026-10894 is a malicious package in exodus-checkout, published on 20 Jul 2026.
Official description
Package
exodus-checkout self-identifies as a security-research dependency-confusion proof-of-concept targeting an internal Exodus payments SDK. It mimics the internal API surface (generateMnemonicSigningKeys, signCharge, signRefund, signCancelSubscription in src/index.js), but every exported function throws — there is no functional implementation. On npm install, src/canary.js runs a postinstall hook that performs a DNS lookup and HTTPS GET to a hardcoded serveo SSH-tunnel host (96e03fa6c292469a-172-245-86-254.serveousercontent.com/canary-install), passing the package's own name and version as query parameters. No installer data (env vars, filesystem, credentials) is read or transmitted — the beacon carries only the package's own identity. Installer-side impact: any build that resolves exodus-checkout from public npm (whether by typo, dependency confusion, or accidental inclusion) breaks at runtime because all exports throw, and emits a one-way network signal to a researcher-controlled tunnel domain that is not Exodus infrastructure and cannot be audited by Exodus or the installer. Routing to human review: name-impersonation of a vendor's internal namespace plus an install-time outbound beacon is the dependency-confusion shape, but the absence of any data exfiltration or remote-code-execution mechanism keeps this below the active-attack threshold.What should I do about MAL-2026-10894?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.
Sources
Also known as GHSA-mqx8-fhj5-w597.