MAL-2026-10092 Malicious code in vite-pwa-config (npm)
Malicious package
Published
MAL-2026-10092 is a malicious package: vite-pwa-config (npm). Every version was published to cause harm.
Task:
1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.
2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.
3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.
4. If the package is not used anywhere, say so and change nothing.
Reference: https://insights.sbomify.com/MAL-2026-10092/ (Markdown: https://insights.sbomify.com/MAL-2026-10092/index.md)
- Package
- vite-pwa-config
- Registry
- npm
What is MAL-2026-10092?
MAL-2026-10092 is a malicious package in vite-pwa-config, published on 9 Jul 2026.
Official description
Package
vite-pwa-config impersonates the popular vite-plugin-pwa (antfu) — the README instructs users to import configJson from vite-plugin-pwa, and package metadata reuses that project's funding link, badges, and banner. When the exported configJson/configField is invoked from a project's vite.config, dist/index.cjs/index.mjs spawns a detached node child (stdio:"ignore", child.unref()) running the bundled dist/client/dev/viteopt.js. That helper fetches a JavaScript string from https://www.jsonkeeper.com/b/FNOBS via axios and passes it to new Function('require', s)(require), giving the anonymous remote endpoint arbitrary code execution in the developer's build environment with full require access. The remote URL is disguised behind a local process = { env: { DEV_API_URL:..., DEV_SECREDT:..., DEV_PREFIX:... } } shadow object to make the fetch look like ordinary env-driven configuration. Detached/silenced child spawning plus the cover-story env shim are deliberate evasion of casual review, and jsonkeeper.com is a mutable, anonymous paste host — today's content can be swapped for any payload at any time. This is a typosquat lure carrying an unpinned remote-fetch-and-eval dropper.What should I do about MAL-2026-10092?
Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.