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

@andrewstory18/is-real-oddnpm

Malicious code in @andrewstory18/is-real-odd (npm) Remove it immediately and rotate any exposed credentials.

MAL-2026-10093
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall @andrewstory18/is-real-odd

What this malware does

@andrewstory18/is-real-odd impersonates the widely-used is-odd package by copying its README, author, and repository metadata verbatim, but ships an additional obfuscated payload (index.min.js) wired into package.json as a postinstall script. The payload uses an _0x string-array dispatcher to hide its behavior; once deobfuscated, it issues an http.request POST to the hardcoded bare IP 144.172.91.84 on port 3000 at path /hello. This fires automatically on npm install, establishing an attacker-controlled callback from any installer machine and enabling tracking of successful infections and staging of follow-on payloads. The destination is unrelated to the legitimate is-odd publisher (jonschlinkert) and is not a registry, CDN, or known SDK endpoint.

Malicious versions

1 flagged
2.0.3

Indicators of compromise (SHA-256)

0a6faaf0fbf39ed9ec8797c97cb8b2486be8b84eb46bfeabc3412a3eeded4aa1

Detection & response playbook

Typosquat
  1. Find it

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

  2. If you installed it — respond

    @andrewstory18/is-real-odd is a typosquat — you almost certainly intended a legitimately-named package. Remove @andrewstory18/is-real-odd, install the correct package, and rotate any secrets exposed during the install since post-install scripts may have already run.

  3. Did it already run?

    If @andrewstory18/is-real-odd 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 @andrewstory18/is-real-odd 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. @andrewstory18/is-real-odd on npm has been identified as a malicious package (version 2.0.3 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-009391

References

Credits

  • Amazon Inspector · finder

Detect & block this

O3 blocks @andrewstory18/is-real-odd-class packages before install and in CI — and if it already ran, its runtime egress monitoring catches the malicious outbound activity and severs the channel.