Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Malicious package

evilpostinstallnpm

evilpostinstall is a confirmed malicious npm package (MAL-2026-15625) that steals credentials and exfiltrates sensitive data (malicious versions 0.2.0, 0.3.0, 0.4.0…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in evilpostinstall (npm)

MAL-2026-15625
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall evilpostinstall

What this malware does

The package's postinstall lifecycle hook pipes the output of env through nc to a host reconstructed at install time from the package version string via cut -b 2-4 and cut -b 5-. For version 4127000.0.1 the destination decodes to 127.0.0.1:888; the sibling artifact evilpostinstall-192.168.1.100.tgz uses the same slicing scheme to target 192.168.1.100. On npm install, the full installer environment - including any CI secrets, tokens, and API keys present in environment variables - is transmitted to the reconstructed host over TCP port 888. package.json also declares a self-referencing dependency evilpostinstall: ^4192168.1.100, whose version field encodes a second destination IP under the same scheme, causing npm to resolve and install an additional package instance whose own postinstall repeats the exfiltration against that address. The destination is deliberately hidden from static scanners by being reconstructed from the version field rather than written as an IP literal, and no source files are shipped - the manifest itself is the payload.

The OpenSSF Package Analysis project identified 'evilpostinstall' @ 4127000.0.1 (npm) as malicious.

It is considered malicious because:

  • The package executes one or more commands associated with malicious behavior.

Malicious versions

15 flagged
0.2.00.3.00.4.00.5.00.6.00.7.00.7.10.8.00.9.00.9.10.9.20.9.349.13.40742254127000.0.14192168.1.100

Indicators of compromise (SHA-256)

64ca497d518a333a571b7f978e9ce5a5f4a87649d462eb16480a258aa33b15c2
846e500b06f58769a2cb833be8e726ab1db04b327f4c614da6642eb46ae7dfe5
29ef31366374537cb5c06da575916f1a0a0494e63df3ce4ea9d06a685f4f3bb1
63c1e371381b8007f9f6c3347d20061d0d2e4d391ad366c6478c153056f49e32
c4f0004a363677a7dc0429c4cf4bacafcd3bbdab0c95e1e7851d44b543d7e486
162c9883c327802cb1876ddca28f93dfabc97256f9b23e16151c3fb7f73ad59c
664bbacd7f9ee0dd7dd6f667d05327beb7d709c72d19e242ccd50cf2995363fe
138e359294e9f248e99ec42e1a3ac5d75ed26f1f11d82395448896776fb3012f
95ca72ee648c6a3eec3673b5b6512ffee68681f09bfd29a7e4b441555747ce33
cd662085adac5d58c8c0026d9dc08bc7b5752504895a93cb5c62e23e110622c1
522a8d833eb33b48e74110ea8a10fcfaba028b1187262cc7126e4205b39037e3
4b20fe1ded30ae78a214b9c52a72d0bc0819be9d1a20daa99e90386b42aa61d2
65ae3f9a0bd4c69e8db063acc53a87217ddd143f9aa592585c6a95fdfecd34c4
73691a85ba0e4f43ea5cfc286f385fcd14b3bcd1727010ff42068fcd1f9c01a6
9acf92bee5a1d538c7f5405a70c63404af9ae48080d3fcd60c3dfd3ad2b64efa
b780ef01474e493df4c823c0e08fbfdcf5e06e8bddbc1b56a4ee6ee79c73f252
019d886aede56107561e3d40e7cad4d138c3f5e7be05dada919968d823aa7473
1b5481d894e337c83071b89547178d48ab832626484249778fd5162d3afbad1d
4374e51254a1232b0612bd5ef4245d9f8592444f9d8aed27e43a11b318b5d503
b57b7284098951d334af5c20e3b3547fa6955796dab3a60c7497f5ab288ee213
dd78cb8b537b7374bf4c7daafa55f7814349edea66c2761b5cfdf2bfaf892f2d
687aefa0d702353373b58f2a1d0fd6b25bf4bfe7d6824670a1edf5a35cce2697

Detection & response playbook

Credential / info stealer
  1. Find it

    Scan your lockfiles (package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock, etc.) and build artifacts for evilpostinstall (15 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging evilpostinstall across your stack and pipelines.

  2. If you installed it — respond

    evilpostinstall is built to steal secrets, so assume every credential the build or runtime could read is compromised. Remove it from your project and lockfile, then rotate ALL exposed secrets — npm/registry tokens, cloud keys, CI/CD secrets, SSH keys, and any .env values — from a known-clean machine. Audit logs for unauthorized use of those credentials.

  3. Did it already run?

    If evilpostinstall was ever installed, its post-install/runtime payload may have already executed. O3's L7 egress monitoring and runtime eBPF sensors detect the credential exfiltration or command-and-control callback after install and block the malicious outbound channel, so you catch and contain the actual compromise — not just the presence of the package.

  4. How O3 protects you

    O3 blocks evilpostinstall before install through its supply-chain scanner, and if it has already run, detects and severs the exfiltration or C2 callback at runtime through L7 egress monitoring and eBPF.

Frequently asked questions

No. evilpostinstall on npm has been identified as a malicious package (versions 0.2.0, 0.3.0, 0.4.0, 0.5.0, 0.6.0, 0.7.0, 0.7.1, 0.8.0, and 7 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-019308IN-MAL-2026-019296IN-MAL-2026-019322IN-MAL-2026-019319IN-MAL-2026-019330IN-MAL-2026-019329IN-MAL-2026-019334IN-MAL-2026-019349IN-MAL-2026-019345IN-MAL-2026-019346IN-MAL-2026-019351IN-MAL-2026-019352IN-MAL-2026-019347IN-MAL-2026-019348IN-MAL-2026-019350

References

Credits

  • Amazon Inspector · finder
  • OpenSSF: Package Analysis · finder

Detect & block this

O3 blocks evilpostinstall-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the credential exfiltration and severs the channel.

Explore

evilpostinstall (npm) malicious package — MAL-2026-15625 | O3 Security