🇰🇷 한글 설명
Vitest의 특정 버전에서 Windows 환경 사용 시 백슬래시(\) 처리 방식의 차이로 인해 발생하는 경로 탐색 취약점입니다. 공격자가 리다이렉트 모킹을 통해 server.fs.allow로 제한된 범위를 벗어나 Vitest 프로세스가 접근 가능한 외부 파일을 읽을 수 있습니다.
💡 쉬운 설명
윈도우 운영체제에서 파일 경로를 구분하는 기호(\)를 처리하는 과정에서 오류가 발생합니다. 이를 이용해 해커가 원래 접근해서는 안 되는 컴퓨터 내부의 파일을 몰래 읽어갈 수 있습니다.
🇺🇸 원문 (English)
Vitest is a Vite-native testing framework for JavaScript and TypeScript projects. From 4.1.11 until 4.1.12 and 5.0.3, isFileLoadingAllowed and the filesystem read interpret backslashes differently on Windows in packages/mocker/src/node/interceptorPlugin.ts. When a client can reach the Vite dev server on Windows and register a redirect mock containing backslash traversal, POSIX joining preserves a Windows backslash traversal that the later filesystem read interprets as a path separator, so the client can read a file outside server.fs.allow that the Vitest process can access. This issue is fixed in versions 4.1.12 and 5.0.3.
📍 영향받는 시스템
Vitest versions 4.1.11 (until 4.1.12) and 5.0.3
⚔️ 공격 벡터
Windows 환경의 Vite 개발 서버에 접근하여 백슬래시를 포함한 리다이렉트 모킹을 등록함으로써 경로 탐색 수행
🛡️ 대응 방법
Vitest를 버전 4.1.12 또는 5.0.3 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 결과에서 vitest의 버전이 4.1.12 미만인지 또는 5.0.3 버전인지 확인하십시오.