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

pob-test-package-in-monoreponpm

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

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

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

What this malware does

npm/pob-test-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.

[email protected] advertises a trivial library whose lib/index.js is six lines exporting the string 'John'. The tarball additionally ships setup.mjs and math_init.js, and package.json declares scripts.preinstall = 'node setup.mjs'. On npm install, setup.mjs downloads the Bun runtime binary from https://github.com/oven-sh/bun/releases/download/bun-v1.3.13/<arch>.zip into a temp directory, chmods it executable, and invokes execFileSync(bunPath, [math_init.js]). math_init.js is a ~727KB single-line Bun-CJS bundle (// @bun @bun-cjs header) with hex-named identifiers (_0xXXXX), a shuffled string array (n7gIxM), and a rotator/decoder pair (WV8StW, hc1jfK9) — obfuscator.io-style packing that executes under the freshly downloaded alien runtime, bypassing Node-based scanning of the shipped source. The CHANGELOG's most recent entry is 5.2.0 ('test feat2'); setup.mjs and math_init.js are not documented in any changelog entry, and are structurally unrelated to a package whose declared purpose is exporting one string literal. The alternate-runtime dropper shape, the mismatch between declared purpose and shipped contents, and the undocumented addition of a large obfuscated payload in a point release are consistent with an unauthorized publish of a hijacked package name.

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

16 flagged
5.2.15.2.25.2.35.2.45.2.55.2.65.2.75.2.85.2.95.2.105.2.115.2.125.2.135.2.145.2.155.2.16

Indicators of compromise (SHA-256)

61528d410a4f483327b9b70a274c336e2920ac7fcc40be2a7c76d8ac90a7cb27
2c0bd5316479e582e3ff9672e8fac5acbf3d2f4f93372c2786ad82fb69f3099f
41a8fe392090122a7b266b9b61f30dd53399e967c679f9e12b8eb73181d0bb62
66d53ad91785622a0a302a2dcc99aca740f24c3237e8b6192fb4acea0031e47e
a4842448956d2e9bae3d40dc60659f9280d546040f0252ccae143a145ed56afd
d2541302a99106cb8372c2679b794aae1f1226eb144134eaf8c4bf122badcf7d
db4f360cde6ac569b33054a33e578d5d37151f2c8665080ea13250346351a647
05959b9c279aa4ccb348b098b0b0a414a30709aa7ef5cd42c3415a8dd816033f
45e4072f62d28620d73d710d1b71ee1dc5c50f174c8fb5e9148fc5780107b242
8d0d06155bd46c553756159f204f6ad7604ee6ac009e7340f7ca68ab5486d042
dfba8af2604fda16e1cf49db43fbbe2eedba17527a96adc01b5ca318fefd1e33
edf7ec31922eedd603a5602acb47193c5e67b2112e81e12d70e8c20878bf8760
28b20058dfd7a555c504eb022f504495cdd08d07f69a97c9596b240d8c8956f3
2cbee8b96a4ef1b2b5c9544bd80988637b0b3234288d8b75b17ed778ac449fd2
6eb7ddc4a79c6308d6e2f29098479c1bc943a2a0e7d9eb753c649ba11f083d80
92d1b7889afa678905248bc92e2017697eea5b13a4ab507613374dba6b516537
ab9d1d7ddd4c01776cd775be1fb96cfc9be2920f765a126ece12dd1517e136f1

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-package-in-monorepo (16 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-package-in-monorepo across your stack and pipelines.

  2. If you installed it — respond

    pob-test-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-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-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-package-in-monorepo on npm has been identified as a malicious package (versions 5.2.1, 5.2.2, 5.2.3, 5.2.4, 5.2.5, 5.2.6, 5.2.7, 5.2.8, and 8 more flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

GHSA-438w-p37w-9w8jIN-MAL-2026-013528IN-MAL-2026-013621IN-MAL-2026-013724IN-MAL-2026-013666IN-MAL-2026-013605IN-MAL-2026-013529IN-MAL-2026-013787IN-MAL-2026-013793IN-MAL-2026-013931IN-MAL-2026-014088IN-MAL-2026-014223IN-MAL-2026-013907IN-MAL-2026-013769IN-MAL-2026-013927IN-MAL-2026-013788IN-MAL-2026-013796

References

Credits

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

Detect & block this

O3 blocks pob-test-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-package-in-monorepo (npm) malicious package — MAL-2026-11980 | O3 Security