🇰🇷 한글 설명
Vite 프론트엔드 도구의 Windows 환경에서 server.fs.deny 설정이 NTFS ADS 경로 형식을 올바르게 정규화하지 못하는 취약점입니다. 이로 인해 .env와 같은 민감한 파일이 ADS(Alternate Data Streams)나 8.3 짧은 파일 이름을 통해 차단 목록을 우회하여 브라우저에 노출될 수 있습니다.
💡 쉬운 설명
윈도우 운영체제의 특수한 파일 접근 방식을 이용해 보안 규칙을 속이는 공격입니다. 이를 통해 원래는 볼 수 없어야 할 비밀번호나 설정 파일이 해커에게 노출될 수 있습니다.
🇺🇸 원문 (English)
Vite is a frontend tooling framework for JavaScript. Prior to 8.0.16, 7.3.5, and 6.4.3, the contents of files that are specified by server.fs.deny can be returned to the browser on Windows. Vite’s dev server denies direct access to sensitive files through server.fs.deny, including entries such as .env, .env.*, and *.{crt,pem}. However, on Windows, the deny logic does not correctly normalize NTFS ADS path forms before access checks are applied. Because of this, requests such as /.env::$DATA?raw are treated as allowed paths, while Windows resolves them to the original file's default data stream. Similar to that, Windows allows accessing a file using a different name with the 8.3 short name compatibility feature. Vite did not reject accessing files via them. This vulnerability is fixed in 8.0.16, 7.3.5, and 6.4.3.
📍 영향받는 시스템
Vite versions prior to 8.0.16, 7.3.5, and 6.4.3 (on Windows)
⚔️ 공격 벡터
NTFS ADS(예: /.env::$DATA) 또는 8.3 짧은 파일 이름을 이용한 경로 우회 요청
🛡️ 대응 방법
Vite를 최신 보안 패치 버전(8.0.16, 7.3.5, 6.4.3 이상)으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 패치된 버전(8.0.16, 7.3.5, 6.4.3 중 하나)이 포함되어 있으면 안전합니다.
npm list vite | grep -E 'vite@(8\.0\.16|7\.3\.5|6\.4\.3)'