vite 8.3.5
- Source
- https://github.com/vitejs/vite
- Artifact scanned
vite-8.3.5.tgz- Compared with
vite-8.3.4.tgz(4 signals introduced since)- Files
- 37 scanned, 0 skipped (binary, oversized, or unrecognised)
- Signals
- 1 critical · 0 warn · 54 info
- Scan time
- 29.8 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 24 of 24 warn and critical signals; 23 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-23 18:48
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
inconclusive Helper evaluates a raw value as JavaScript through the Function constructor.
Reasoning
Function() builds code from rawValue and runs it with Node globals in scope. Build tools do this to evaluate config values, so it may be a bundled config parser. Still arbitrary code execution if the input is untrusted, and the snippet does not show where rawValue comes from.
-
exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. = exports. -
var wordDelimiters = -
likely benign Cache-busting re-import of a config file in Vite.
Reasoning
Timestamp-suffixed import of a file URL to bypass the module cache when reloading config. Standard Vite behaviour.
-
-
dismissed IPA pronunciation text in the Vite README.
Reasoning
The flagged 'viːt' is an IPA phonetic transcription in Markdown prose, where mixed scripts are normal. Not an identifier or code.
-
let -
likely benign Vite dev client dynamically imports a module URL during HMR.
Reasoning
The import specifier is a base URL plus a module URL inside Vite's HMR client, and the @vite-ignore comment marks it as intentional. Expected dev-server behaviour.
-
//#endregion -
//#endregion -
const = acceptedPath.; const importPromise =likely benign Vite HMR client re-imports an accepted module with a timestamp query.Reasoning
The specifier is built from the accepted HMR path with a timestamp query, the standard Vite HMR re-import pattern.
-
let -
//#endregion -
//#endregion -
const = acceptedPath.; const importPromise =likely benign Vite HMR client re-imports an accepted module with a timestamp query.Reasoning
Same HMR re-import pattern as the bundledDevClient finding, in the duplicate client build.
-
/** Used to compose unicode character classes. */ var rsAstralRange = "\\ud800-\\udfff"; var rsComboMarksRange = "\\u0300-\\u036f\\ufe20-\\ufe23"; var rsComboSymbolsRange = "\\u20d0-\\u20f0"; -
/** Used to compose unicode character classes. */ var rsAstralRange = "\\ud800-\\udfff"; var rsComboMarksRange = "\\u0300-\\u036f\\ufe20-\\ufe23"; var rsComboSymbolsRange = "\\u20d0-\\u20f0"; -
var rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]"; var rsFitz = "\\ud83c[\\udffb-\\udfff]"; var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")"; var rsNonAstral = "[^" + rsAstralRange + "]"; -
var rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]"; var rsFitz = "\\ud83c[\\udffb-\\udfff]"; var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")"; var rsNonAstral = "[^" + rsAstralRange + "]"; -
var rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]"; var rsFitz = "\\ud83c[\\udffb-\\udfff]"; var rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")"; var rsNonAstral = "[^" + rsAstralRange + "]"; -
var rsNonAstral = "[^" + rsAstralRange + "]"; var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; var rsUpper = "[" + rsUpperRange + "]"; -
var rsNonAstral = "[^" + rsAstralRange + "]"; var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; var rsUpper = "[" + rsUpperRange + "]"; -
var rsNonAstral = "[^" + rsAstralRange + "]"; var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; var rsUpper = "[" + rsUpperRange + "]"; -
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; var rsUpper = "[" + rsUpperRange + "]"; var rsZWJ = "\\u200d"; -
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; var rsUpper = "[" + rsUpperRange + "]"; var rsZWJ = "\\u200d"; -
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; var rsUpper = "[" + rsUpperRange + "]"; var rsZWJ = "\\u200d"; -
var rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}"; var rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]"; var rsUpper = "[" + rsUpperRange + "]"; var rsZWJ = "\\u200d"; -
var -
likely benign Vite SSR loader imports a module by specifier with a tracking query.
Reasoning
The specifier is the module id plus a tracking query in Vite's SSR module runner, a legitimate loader for the project's own modules.
-
return ;likely benign Vite SSR loader imports a module and collects its file dependencies.Reasoning
Same SSR loader pattern, returning the module result and its file dependencies. Consistent with a build tool loading user config or modules.
-
const argsAndCode = ; const ; const args =likely benign Generic localImport wrapper used by a bundled worker/function runner.Reasoning
A generic import(specifier) wrapper used to run generated worker code in a bundled runner, which is a common and expected pattern in build tooling.
-
likely benign Imports a resolved file path as a file URL in a Vite loader.
Reasoning
Imports a file URL from a resolved id, with webpackIgnore to mark intent. Standard config or module loading.
-
ffer ? Buffer. : Uint8Array.;likely benign Minified base64 decoding fallback inside a bundled dependency.Reasoning
atob applied to a minified bundle variable, most likely a base64 fallback for Buffer in a dependency. The snippet alone does not show a fetch or eval chain.
-
CHAR_VERTICAL_LINE: "|", CHAR_ZERO_WIDTH_NOBREAK_SPACE: "⟨U+FEFF⟩" }; })); -
return -
likely benign Decodes a base64 inline source map for stack-trace support.
Reasoning
decodeBase64WithAtob decodes an inline source map for stack traces, a standard source-map-support pattern with no execution or network step.
-
var json = this.; return ; } -
this. -
const sssPath = ; return cachedSss = .; }); return cachedSss;likely benign Lazily loads the sugarss CSS preprocessor from a resolved path.Reasoning
Loads the optional sugarss preprocessor from a resolved path and caches it. Standard lazy loading of a CSS preprocessor.
-
asynclikely benign Lazily loads the sass preprocessor and its async compiler.Reasoning
Loads the sass package from a resolved path and initialises its async compiler. Standard preprocessor loading.
-
likely benign Vite's optional sass-embedded loader dynamically imports the resolved Sass package path.
Reasoning
The import is inside a try block that checks for sass-embedded package-resolution errors, which matches Vite's optional Sass preprocessor loader. The specifier comes from the package's own resolved path, not attacker input, so this is a normal plugin-loading pattern.
-
returnlikely benign Vite's Less preprocessor dynamically imports the resolved less module.Reasoning
This is Vite's Less preprocessor wrapper, which imports the Less package resolved by the build tool and then calls its render API on CSS source. The dynamic specifier is an expected consequence of optional preprocessor loading.
-
returnlikely benign Vite's Stylus preprocessor dynamically imports the resolved stylus module.Reasoning
This is Vite's Stylus preprocessor wrapper, which imports the resolved stylus package and renders CSS with it. The dynamic import of a locally resolved module path is expected for this plugin.
-
likely benign A browser-or-runtime fallback decodes base64 content into a byte array.
Reasoning
The atob call is in a fallback branch that decodes a base64 string into bytes, which is typical for handling inline data URLs or source payloads in a bundler. The snippet shows no subsequent eval or execution, only byte conversion.
-
constlikely benign A minification worker dynamically imports the resolved terser module.Reasoning
This is Vite's terser minifier worker, which imports the resolved terser module and calls minify on build output. The dynamic specifier is the resolved package path and the code is only minified, not executed.
-
return ;likely benign Vite loads a config file via dynamic import with a cache-busting timestamp query.Reasoning
This loads a user's config file as an ES module from its resolved file URL, with a timestamp query to bust the cache. That is the standard way bundlers reload config, and the import is local rather than fetched from the network.
-
likely benign Vite imports a temporarily bundled config file and then deletes it.
Reasoning
The import targets a temporary file that the config loader has just written from a bundled config, then deletes it in a finally block. This is a standard technique for loading a TypeScript or bundled config as a module, and the import is local.
-
-
var require_format_import_prelude = /* @__PURE__ */ -
cli........ -
-
likely benign A generated declaration file contains one very long export statement re-exporting types.
Reasoning
This is a long generated TypeScript re-export statement listing many public type names. Long lines in generated declaration files are normal and carry no code or obfuscation risk.
-
const windowsSlashRE = /\\/g; -
let capturedBuffer = typeof Buffer == "function" ? Buffer : void 0; return capturedBuffer && typeof capturedBuffer. == "function" ? : ;likely benign The module runner falls back to atob for base64 decoding when Buffer is absent.Reasoning
The atob branch is a fallback used only when Buffer is unavailable, decoding a base64 string to UTF-8 text for source or map handling. There is no eval or fetch of the decoded value here, so it looks like ordinary runtime portability code.
-
};likely benign The module runner imports an external module from a resolved file path.Reasoning
runExternalModule is Vite's module runner hook that imports an externally resolved file path to execute modules in the runner. Dynamic import with a runtime path is the core mechanism of this runner, not a sign of hidden behavior.
Reproduce This Scan
Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
|
&&