MAL-2026-10574: Malicious code in vite-plugin-config-paths (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (96c7307466b955fa9b453e949ec2fda3153e5c444b906eed5e3bc88d190a33a7) Package name impersonates the widely-used vite-plugin-tsconfig-paths (the package.json homepage points to the legitimate plugin's README), and the README markets the same API. The CJS entry (index.js) contains top-level code that is absent from the ESM entry (index.mjs): `const { getFunc } = require("url-func-registry"); const jsonInst = getFunc("JsonS"); const json_provider = jsonInst();`. On `require()` of this package (the resolution path Node uses for CommonJS consumers), a function looked up by string name from a transitive `url-func-registry` dependency is invoked at load time. This registry-lookup indirection hides the executed code behind a named-function table populated by a separate package, so the actual behavior can be altered by changing that transitive without republishing this one. The ESM build performs no such call, indicating the CJS output was modified after normal build. The combination of name impersonation of a popular target plus divergent, indirection-based load-time execution not part of the advertised tsconfig-path resolution logic is the shape of a typosquat dropper.
AI Analysis
Technical Summary
The malicious npm package vite-plugin-config-paths (version 1.4.2) impersonates the widely used vite-plugin-tsconfig-paths by mimicking its homepage and README. The CommonJS entry point (index.js) contains top-level code that invokes a function retrieved by name from a transitive dependency 'url-func-registry' at load time, enabling dynamic execution of hidden code. This behavior is absent in the ESM entry (index.mjs), indicating the CommonJS output was altered post-build to include this malicious code. The use of a named-function table populated by another package allows the actual malicious behavior to be changed without republishing vite-plugin-config-paths itself. This pattern is characteristic of a typosquatting dropper designed to trick users into installing it while executing hidden malicious payloads.
Potential Impact
This package can execute arbitrary code at load time in environments that use the CommonJS module system, potentially leading to compromise of the development environment or build processes that depend on this package. The dynamic invocation of functions from a transitive dependency allows the malicious behavior to be altered or extended without updating the package itself, increasing the risk of undetected malicious activity.
Mitigation Recommendations
No official patch or fix is currently available for this malicious package. Users should avoid installing vite-plugin-config-paths version 1.4.2 and instead use the legitimate vite-plugin-tsconfig-paths package. Verify package names carefully before installation to avoid typosquatting attacks. Remove any installations of vite-plugin-config-paths from projects and dependency trees. Monitor for and block this package in internal registries or package management policies.
MAL-2026-10574: Malicious code in vite-plugin-config-paths (npm)
Description
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (96c7307466b955fa9b453e949ec2fda3153e5c444b906eed5e3bc88d190a33a7) Package name impersonates the widely-used vite-plugin-tsconfig-paths (the package.json homepage points to the legitimate plugin's README), and the README markets the same API. The CJS entry (index.js) contains top-level code that is absent from the ESM entry (index.mjs): `const { getFunc } = require("url-func-registry"); const jsonInst = getFunc("JsonS"); const json_provider = jsonInst();`. On `require()` of this package (the resolution path Node uses for CommonJS consumers), a function looked up by string name from a transitive `url-func-registry` dependency is invoked at load time. This registry-lookup indirection hides the executed code behind a named-function table populated by a separate package, so the actual behavior can be altered by changing that transitive without republishing this one. The ESM build performs no such call, indicating the CJS output was modified after normal build. The combination of name impersonation of a popular target plus divergent, indirection-based load-time execution not part of the advertised tsconfig-path resolution logic is the shape of a typosquat dropper.
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The malicious npm package vite-plugin-config-paths (version 1.4.2) impersonates the widely used vite-plugin-tsconfig-paths by mimicking its homepage and README. The CommonJS entry point (index.js) contains top-level code that invokes a function retrieved by name from a transitive dependency 'url-func-registry' at load time, enabling dynamic execution of hidden code. This behavior is absent in the ESM entry (index.mjs), indicating the CommonJS output was altered post-build to include this malicious code. The use of a named-function table populated by another package allows the actual malicious behavior to be changed without republishing vite-plugin-config-paths itself. This pattern is characteristic of a typosquatting dropper designed to trick users into installing it while executing hidden malicious payloads.
Potential Impact
This package can execute arbitrary code at load time in environments that use the CommonJS module system, potentially leading to compromise of the development environment or build processes that depend on this package. The dynamic invocation of functions from a transitive dependency allows the malicious behavior to be altered or extended without updating the package itself, increasing the risk of undetected malicious activity.
Mitigation Recommendations
No official patch or fix is currently available for this malicious package. Users should avoid installing vite-plugin-config-paths version 1.4.2 and instead use the legitimate vite-plugin-tsconfig-paths package. Verify package names carefully before installation to avoid typosquatting attacks. Remove any installations of vite-plugin-config-paths from projects and dependency trees. Monitor for and block this package in internal registries or package management policies.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- MAL-2026-10574
- Osv Schema Version
- 1.7.4
- Aliases
- []
- Ecosystems
- ["npm"]
- Database Specific Severity
- null
- Cvss Version
- null
Threat ID: 6a55ff5168715ace432f009c
Added to database: 07/14/2026, 09:20:17 UTC
Last enriched: 07/14/2026, 09:25:31 UTC
Last updated: 07/15/2026, 03:34:16 UTC
Views: 4
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.