🔍 CVE-2024-23331

7.5
CVSS Score
HIGH
2024-01-19
2026-06-17 07:12
✅ 완료

🇰🇷 한글 설명

Vite 프론트엔드 개발 서버에서 대소문자를 구분하지 않는 파일 시스템(Windows 등)을 사용할 경우, 파일 경로의 대소문자를 변형하여 `server.fs.deny` 설정된 파일에 접근할 수 있는 보안 취약점입니다. 이는 `picomatch` 라이브러리의 대소문자 구분 방식과 파일 서버의 처리 방식 차이로 인해 발생합니다.

💡 쉬운 설명

파일 접근을 막아두는 차단 목록이 대소문자 차이를 구별하지 못해 발생하는 문제입니다. 공격자가 파일 이름의 대소문자를 살짝 바꾸어 요청하면 차단 시스템을 피해 민감한 파일에 접근할 수 있습니다.

🇺🇸 원문 (English)

Vite is a frontend tooling framework for javascript. The Vite dev server option `server.fs.deny` can be bypassed on case-insensitive file systems using case-augmented versions of filenames. Notably this affects servers hosted on Windows. This bypass is similar to CVE-2023-34092 -- with surface area reduced to hosts having case-insensitive filesystems. Since `picomatch` defaults to case-sensitive glob matching, but the file server doesn't discriminate; a blacklist bypass is possible. By requesting raw filesystem paths using augmented casing, the matcher derived from `config.server.fs.deny` fails to block access to sensitive files. This issue has been addressed in [email protected], [email protected], [email protected], and [email protected]. Users are advised to upgrade. Users unable to upgrade should restrict access to dev servers.

📍 영향받는 시스템

Vite 버전 5.0.12 미만, 4.5.2 미만, 3.2.8 미만, 2.9.17 미만 (Windows 환경 영향 높음)

⚔️ 공격 벡터

대소문자를 구분하지 않는 파일 시스템에서 파일 경로의 대소문자를 변형하여 차단 목록(blacklist)을 우회하는 방식

🛡️ 대응 방법

Vite를 최신 보안 패치 버전(5.0.12, 4.5.2, 3.2.8, 2.9.17 이상)으로 업그레이드하거나 개발 서버 접근을 제한하십시오.

🔧 검증 코드

출력된 Vite 버전을 확인하여 보안 패치가 적용된 버전(5.0.12, 4.5.2, 3.2.8, 2.9.17 이상)인지 대조하십시오.

Shell / Script
npm list vite | grep -E 'vite@([0-9]+\.[0-9]+\.[0-9]+)'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

💻 영향받는 소프트웨어

Windows Server