vite 8.3.4
- Source
- https://github.com/vitejs/vite
- Tag scanned
v8.3.4- Directory
packages/vite- Compared with
v8.3.3(0 signals introduced since)- Files
- 493 scanned, 64 skipped (binary, oversized, or unrecognised)
- Signals
- 1 critical · 0 warn · 33 info
- Scan time
- 21.1 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 25 of 25 warn and critical signals; 24 demoted to info.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-14 19:39
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
evalValue<T = any>: Tsuspicious Builds and invokes a Function from a template string wrapping a raw value, used as an evaluator in the build tool's utils.Reasoning
The function builds a Function body from a template string that wraps a raw value in a return expression, shaping it as an evaluator for config-like values. Dynamic Function construction is risky in general, and the rawValue is an untrusted-looking string parameter, so this is a real code-execution sink. However, the context (a utility named evalValue that shadows console/process/require as parameters) looks like a deliberate, bounded config-evaluation helper in a build tool rather than a hidden dropper. The static dynamic-execution signal is warranted, but the code reads as an intentional, known pattern rather than obfuscated malice. Suspicious rather than confirmed because the input source is not shown.
-
dismissed IPA pronunciation transcription in the Vite README.
Reasoning
The flagged identifier is IPA pronunciation notation (/viːt/, with the length mark ː) in a README describing the project name. Non-Latin characters are expected in documentation about pronunciation, and there is no code execution or obfuscation.
-
likely benign Dynamic import of an HMR patch module URL in the Vite dev client.
Reasoning
Vite's HMR client loads hot-update patch modules from base plus a server-supplied URL, with a fallback to full reload on failure. The @vite-ignore comment marks it as intentional, and this is standard dev-server behavior.
-
const browserPath = const importPromise =likely benign Dynamic import of an accepted HMR module path in the Vite client.Reasoning
The import specifier is base plus a wrapped module path used for HMR accept handling. The @vite-ignore annotation and surrounding HMR logic indicate normal runtime module loading in the dev client.
-
: Promise<any>likely benign Evaluator method that dynamically imports an external module by file path.Reasoning
This is the ESM evaluator of Vite's module runner, which imports external modules by filepath. Loading arbitrary modules is the purpose of the class, so the pattern is expected, though it is a powerful primitive for a reviewer to note.
-
return })likely benign Base64 decode helper that converts an encoded string to UTF-8 text.Reasoning
atob decodes a base64 string into bytes, which are then decoded as UTF-8 text. This is a standard helper for handling inline base64 data such as source maps. It is not paired with eval or a network fetch in the snippet.
-
info
warn→ info by reviewdynamic-importpackages/vite/src/node/__tests__/environment.spec.ts:173:25const chunk = . const mod = awaitlikely benign Test dynamically imports a built bundle from a fixture path.Reasoning
The test imports a built output file via path.join relative to import.meta.dirname, which is a normal test fixture pattern.
-
-
}) const mod1 = awaitlikely benign Test imports a fixture module built for file-url resolution.Reasoning
The test imports a fixture build output using join with import.meta.dirname. This is routine test setup with a fixed path.
-
}) const mod2 = awaitlikely benign Test imports a second fixture module for virtual file-url resolution.Reasoning
The same fixture-import pattern appears with a different fixture path. It is a routine test that loads a known local file.
-
-----BEGIN CERTIFICATE----- MIID7zCCAtegAwIBAgIJS9D2rIN7tA8mMA0GCSqGSIb3DQEBCwUAMGkxFDASBgNV BAMTC2V4YW1wbGUub3JnMQswCQYDVQQGEwJVUzERMA8GA1UECBMIVmlyZ2luaWEx EzARBgNVBAcTCkJsYWNrc2J1cmcxDTALBgNVBAoTBFRlc3QxDTALBgNVBAsTBFRldismissed Embedded PEM certificate fixture in a unit test.Reasoning
The blob is a PEM-formatted X.509 certificate in a test file. Long base64 runs are expected for certificates, and the high compression ratio is typical for this kind of data.
-
https://evanw.github.io/source-map-visualization/#MzQALyogY29tbWVudCAqLwpjb25zb2xlLmxvZygiZm9vIik7CjE1NgB7InZlcnNpb24iOjMsInNvdXJjZXMiOlsiL3NyYy9mb28uanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc29sZS5sb2coXCJmb29cIik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzsifQo= -
https://evanw.github.io/source-map-visualization/#NjMALy8gYi5qcwpjb25zb2xlLmxvZygiLi9iLmpzIik7CgovLyBhLmpzCmNvbnNvbGUubG9nKCIuL2EuanMiKTsKMjIwAHsKICAidmVyc2lvbiI6IDMsCiAgInNvdXJjZXMiOiBbImIuanMiLCAiYS5qcyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiY29uc29sZS5sb2coJy4vYi5qcycpXG4iLCAiaW1wb3J0ICcuL2IuanMnXG5jb25zb2xlLmxvZygnLi9hLm -
https://evanw.github.io/source-map-visualization/#NjYALmZvbyB7CiAgb3ZlcmZsb3c6IHNjcm9sbDsKICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7Cn0KMjU1AHsKICAiZmlsZSI6ICIvc3JjL3Nhc3Mvc3R5bGUuc2FzcyIsCiAgIm1hcHBpbmdzIjogIkFBQUE7RUFDRSxnQkFBZ0I7RUNEbEIsa0NBQUE7QURFQSIsCiAgIm5hbWVzIjogW10sCiAgInNvdXJjZXMiOiBbCiAgICAiL3NyYy9zYX -
https://evanw.github.io/source-map-visualization/#MjkALmZvbyB7CiAgb3ZlcmZsb3c6IHNjcm9sbDsKfQoyMDcAewogICJmaWxlIjogIi9zcmMvc2Fzcy9zdHlsZS5zYXNzIiwKICAibWFwcGluZ3MiOiAiQUFBQTtFQUNFIiwKICAibmFtZXMiOiBbXSwKICAic291cmNlcyI6IFsKICAgICIvc3JjL3Nhc3MvdmVuZG9yL2luZGV4LnNjc3MiCiAgXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi5mb28ge1xuICBvdm -
const module = awaitlikely benign Dynamic import of the resolved config file with a timestamp for cache busting.Reasoning
Vite loads a bundled config file by file URL with a cache-busting timestamp query. This is the standard mechanism for reloading config during dev, and the path comes from the resolved config file.
-
likely benign Imports a temporary bundled config file and removes it afterward.
Reasoning
The code imports a temporary file containing the bundled config, then deletes it in a finally block. This is the normal flow for loading TypeScript configs with a bundler, and cleanup is handled.
-
const sssPath = const resolved = . return })likely benign Dynamic import of an installed SSS preprocessor module, cached after the first load.Reasoning
The code loads the Sass-like preprocessor module from a path resolved by loadPreprocessorPath and caches the result. This is the normal way to load an optional CSS preprocessor dependency.
-
asynclikely benign Loads the sass preprocessor module from a resolved path at runtime.Reasoning
Vite's CSS plugin loads optional preprocessor packages (sass) by resolved path from user-installed dependencies. Dynamic import of a resolved package path is standard for optional peer dependencies and not obfuscation.
-
likely benign Tests whether the sass-embedded package can be imported, catching errors.
Reasoning
Probing for the sass-embedded package by importing its resolved path inside a try/catch is a normal optional-dependency check in a build tool.
-
) =>likely benign Loads the Less preprocessor module from a resolved path.Reasoning
Less preprocessor is loaded from a resolved path, a standard optional-dependency pattern in Vite's CSS pipeline.
-
) =>likely benign Loads the Stylus preprocessor module from a resolved path.Reasoning
Stylus preprocessor is loaded from a resolved path as an optional dependency, consistent with the other CSS preprocessor loaders in the file.
-
) =>likely benign Loads the terser minifier from a resolved path.Reasoning
Terser is loaded from a resolved path for minification, an optional-dependency pattern. No payload or evaluation of untrusted data is involved.
-
}likely benign Decodes base64-encoded wasm bytes at runtime in the wasm plugin helper.Reasoning
atob decodes an inline base64 WebAssembly module in the wasm helper, a legitimate way to embed wasm bytes. The decoded bytes are used to instantiate wasm, not eval'd as script, and the pattern is common in build tooling.
-
info
warn→ info by reviewdynamic-importpackages/vite/src/node/ssr/runtime/__tests__/fixtures/cyclic/entry.js:7:16likely benign Test fixture helper performing dynamic import of a supplied id.Reasoning
Test fixture intentionally exercising dynamic import of a variable id for the SSR runtime; not malicious.
-
info
warn→ info by reviewdynamic-importpackages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js:13:28dynamicProcessed: await , dynamicRelative: await , dynamicAbsolute: await , dynamicAbsoluteExtension: await ,likely benign Test fixture dynamically imports relative module paths.Reasoning
Test fixture with dynamic imports of local relative and absolute paths to verify SSR module resolution; expected behavior.
-
info
warn→ info by reviewdynamic-importpackages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js:14:28dynamicRelative: await , dynamicAbsolute: await , dynamicAbsoluteExtension: await , dynamicAbsoluteFull: awaitlikely benign Test fixture dynamically imports absolute module paths.Reasoning
Same test fixture covering dynamic imports of absolute paths for SSR runtime testing; benign.
-
info
warn→ info by reviewdynamic-importpackages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js:15:37dynamicAbsolute: await , dynamicAbsoluteExtension: await , dynamicAbsoluteFull: awaitlikely benign Test fixture dynamically imports a platform-adjusted absolute path.Reasoning
Test fixture building a /@fs/ prefixed path for a Windows-specific dynamic import test; benign test scaffolding.
-
info
warn→ info by reviewdynamic-importpackages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js:16:32dynamicAbsoluteExtension: await , dynamicAbsoluteFull: await ,likely benign Test fixture dynamically imports an absolute path with extension.Reasoning
Test fixture dynamically imports an extension-bearing absolute path as part of SSR runtime tests; benign.
-
info
warn→ info by reviewdynamic-importpackages/vite/src/node/ssr/runtime/__tests__/fixtures/dynamic-import.js:19:27), dynamicFileUrl: await , static: staticModule, }likely benign Test fixture in Vite's SSR runtime that performs a dynamic import of a file URL variable.Reasoning
This is a test fixture for the SSR runtime's dynamic import handling. A dynamic import with a variable specifier (fileUrl) is exactly what the fixture is meant to exercise. It is a standard pattern in a module loader test, with no encoding or hidden payload in the snippet.
-
info
encoding-base64packages/vite/src/node/ssr/runtime/__tests__/fixtures/pre-source-mapped-file.js:9:51//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidHJhbnNwaWxlZC1pbmxpbmUudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCAnbm9kZTpwYXRoJ1xuXG5leHBvcnQgdHlwZSBEdW1teSA9IHtcbiAgZm9vOiBcImZvb1wiLFxufVxuXG4vKipcbiAqIGR1bW15XG4gKiBkdW1teVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0ZX -
info
dynamic-executionpackages/vite/src/node/ssr/runtime/__tests__/server-source-maps.spec.ts:296:62`throw new Error('example')\n` + `//# =data:application/json;base64,\n` -
: boolean -
: boolean
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&