# MAL-2026-3762: Malicious code in exxpress-tool (npm)


- **Type:** Malicious package
- **Package:** `exxpress-tool` (npm)
- **Published:** 14 May 2026

## What is MAL-2026-3762?

MAL-2026-3762 is a malicious package in exxpress-tool, published on 14 May 2026. 

### Official description

The package name `exxpress-tool` is a one-character edit of the widely-used `express` package. On `npm install`, the declared `scripts.postinstall` runs `postinstall.js`, which reads `~/.npmrc` (extracting `_authToken` and `npm_[A-Za-z0-9]{36}` tokens), `~/.git-credentials`, and `~/.env` (matching env-var names against token/secret/password/api/aws/azure/gcp/stripe/slack patterns and EVM private-key shapes), bundles the results together with `os.hostname()` and `os.userInfo()`, and POSTs the JSON to the hardcoded bare-IP endpoint `http://149.28.127.35:8888` over plain HTTP. The same script iterates a hardcoded list of ~71 Chrome/Brave/Edge crypto-wallet extension IDs (MetaMask, Phantom, Coinbase Wallet, Trust, Exodus, Ledger Live, Trezor, etc.), reads each wallet's `Local Extension Settings` LevelDB `.log` files, and regex-matches on `vault`, `mnemonic`, `seed`, `privateKey`, `encrypted`. It also recursively walks `~/Documents`, `~/Desktop`, `~/Downloads`, `~/OneDrive`, `~/Dropbox`, and `~/Google Drive` searching for BIP-39 seed phrases and `0x`-prefixed private keys. The advertised library code (`index.js`) is an empty stub; the author's own in-source comments (`The real payload is in postinstall.js`, `Silent. Zero trace.`, `Token harvester + Crypto wallet scanner`) confirm intent. Any developer or CI environment that installs this package will have npm publish tokens, git credentials, environment secrets, and browser wallet data shipped to the attacker.

## What should I do about MAL-2026-3762?

Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.

## Fix prompt for AI coding agents

```text
MAL-2026-3762 is a malicious package: exxpress-tool (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-3762/ (Markdown: https://insights.sbomify.com/MAL-2026-3762/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/MAL-2026-3762

---
From sbomify Insights: https://insights.sbomify.com/MAL-2026-3762/
Summaries are generated and may contain mistakes; the official description above is the record.
