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

pob-test-typescript-package-in-monoreponpm

pob-test-typescript-package-in-monorepo is a confirmed malicious npm package (MAL-2026-11981) that steals credentials and exfiltrates sensitive data (malicious versions 4.2.1, 4.2.2, 4.2.3…). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in pob-test-typescript-package-in-monorepo (npm)

MAL-2026-11981
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall pob-test-typescript-package-in-monorepo

What this malware does

npm/pob-test-typescript-package-in-monorepo is affected by the large-scale, self-propagating npm supply-chain worm of 2026-08-04 (the "Shai-Hulud: Here We Go Again" wave) — the same campaign that began with the compromise of the keyv and cacheable maintainer account. The listed version(s) were trojanized and republished by the worm after it reached an npm publish token belonging to a maintainer in this namespace; the payload enumerates every package a stolen token controls and republishes each with the same hook, so many packages under this scope were poisoned in the same short window. Every poisoned release adds a preinstall hook ("preinstall": "node setup.mjs") that runs on a bare npm install, before any project code. setup.mjs downloads a standalone Bun runtime and runs a byte-identical, heavily obfuscated ~728 KB second-stage credential stealer (shipped as Math_Symbol.js / math_init.js). It harvests GitHub, npm, AWS, GCP, Azure, HashiCorp Vault and Kubernetes credentials plus generic secrets and private keys (TruffleHog-style sweep), reads CI/CD secrets and identifies build runners, then republishes further packages the stolen token can reach. Rather than a fixed command-and-control host, it exfiltrates stolen findings to attacker-created GitHub repositories (descriptions reading "Shai-Hulud: Here We Go Again") and over DNS. Treat any environment that installed an affected version (with install scripts enabled) as compromised: rotate and revoke all reachable credentials (npm and GitHub tokens, cloud keys, Vault/Kubernetes secrets, and CI org/repo secrets). Part of the August 2026 npm worm that poisoned 400+ packages across many organizations.

package.json declares scripts.preinstall = node setup.mjs. setup.mjs is itself obfuscator.io-style obfuscated (_0xXXXX identifiers, string-array indirection) and, on npm install, downloads the Bun runtime from https://github.com/oven-sh/bun/releases/download/bun-v<version>/... into a temp directory, chmods it executable, then invokes execFileSync(<bun>, ['<pkgdir>/math_init.js'],...). math_init.js is a 727KB opaque Bun-CJS blob (// @bun @bun-cjs header, shuffled numeric+string constant array, rotating identifiers like WV8StW/n7gIxM) shipped at the tarball root — unreviewable as source and executable only under the freshly dropped alternate runtime. The declared package surface is a trivial monorepo test stub whose main export returns the string Hello ${name}!; the README documents only that function. There is no legitimate reason for such a package to pull a second language runtime and hand it a large obfuscated payload at install time. The alternate-runtime delivery mechanism additionally evades Node-based install-time scanners. Installing the package causes attacker-controlled code, whose contents cannot be inspected without executing it under the dropped runtime, to run on the installer's machine.

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Malicious versions

17 flagged
4.2.14.2.24.2.34.2.44.2.54.2.64.2.74.2.84.2.94.2.104.2.114.2.124.2.134.2.144.2.154.2.164.2.17

Indicators of compromise (SHA-256)

9a08235920f5d6392335ca88fdad9b33414776a3699effeef2b1081c67bda7c3
5e33c20f50864202265d30d8859e9ce0d5d14d1e47bf2c95ba4f13d36d20ea33
771b2dec252e16f60803accf7d22db80bb50b3a9c4896144abcfa2feb461e73f
fc7e823721e733dc495185fd93f712d044b5a087ca1e22d068922c489de3edf1
2a1883568d5595e1bd778c432c60f6dc631d55809b8dc7076cb1e3812ec6ca2c
3ec2832a334c32ae6a5b804305c46a9051ef5222c16d337535078a95bcf2a655
46b0d2708f89d741dd2fcdb9681ab154b83f9c9da45d7ecb5c9c13c358151c85
713a7447a36fd12cc0b5d7c36b89f68351d505935667907d251973cf62b706aa
9de603018fa58d09f7f02e2957cb75ba3133a380a55f3c0fb50f152f444aeea8
bc3385ac59ae2bddd1601d4f1a430ab8fffb99dfcd3b1180be2aa0b59adc9f40
f601917e8b3b0c5527563bea9f5f9d387b50b9a3b206314df188e5d954085b68
fd9760872b5b82c4731a19696bd7962af63f8c2b1364037af4121871f9fa3239
5f6442c5b34ee8c391573c8f7e9ad29ef216972ba4841190df5ded97a80e0ed4
c707d88aba023705d698664178f4f21f17d081f8102097ed0f8917a7fff7979d
d5115c8d0058353212cffadd0040fbccf62e24f220dc8a14dc5442f773d74912
dfa84cfd98109cac9145d8dd7b204a43df9206bad36d4b13a3fe55f500c3ab43
dfcde0268688171a1762cd849b214cd52b9d243c9cf9555f37220a05f98a573f
ed1b247e01e13e27a822726e4d29fdab17c874f7f9753eceda3daf7dfdaef26e

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 pob-test-typescript-package-in-monorepo (17 malicious versions). O3 Security's supply-chain scanner checks every dependency against known-malicious package intelligence at install time and in CI, flagging pob-test-typescript-package-in-monorepo across your stack and pipelines.

  2. If you installed it — respond

    pob-test-typescript-package-in-monorepo 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 pob-test-typescript-package-in-monorepo 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 pob-test-typescript-package-in-monorepo 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. pob-test-typescript-package-in-monorepo on npm has been identified as a malicious package (versions 4.2.1, 4.2.2, 4.2.3, 4.2.4, 4.2.5, 4.2.6, 4.2.7, 4.2.8, and 9 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

GHSA-w4vx-v8m8-c885IN-MAL-2026-013488IN-MAL-2026-013726IN-MAL-2026-013727IN-MAL-2026-013798IN-MAL-2026-013915IN-MAL-2026-014230IN-MAL-2026-014090IN-MAL-2026-013786IN-MAL-2026-014222IN-MAL-2026-013924IN-MAL-2026-013929IN-MAL-2026-013795IN-MAL-2026-013799IN-MAL-2026-013794IN-MAL-2026-013925IN-MAL-2026-013801IN-MAL-2026-014221

References

Credits

  • Aikido Security · finder
  • Amazon Inspector · finder
  • SafeDep · finder
  • Socket Threat Research Team · finder

Detect & block this

O3 blocks pob-test-typescript-package-in-monorepo-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

pob-test-typescript-package-in-monorepo (npm) malicious package — MAL-2026-11981 | O3 Security