🇰🇷 한글 설명
Vitest의 브라우저 모드에서 cdp() API가 권한 검증 없이 Chrome DevTools Protocol 메서드를 그대로 전달하는 취약점이 발견되었습니다. 공격자는 이를 통해 vite.config.ts 파일을 덮어쓰고 임의의 Node.js 코드를 실행할 수 있습니다.
💡 쉬운 설명
테스트 도구의 보안 구멍을 통해 해커가 컴퓨터의 설정 파일을 마음대로 바꾸고 악성 프로그램을 실행할 수 있는 문제입니다. 브라우저 제어 권한이 제대로 제한되지 않아 발생하는 위험한 결함입니다.
🇺🇸 원문 (English)
Vitest is a testing framework powered by Vite. From 3.0.0 until 3.2.5, 4.1.8, and 5.0.0-beta.4, Vitest Browser Mode exposed a cdp() API that forwarded raw Chrome DevTools Protocol methods without being gated by allowWrite or allowExec, allowing a remote client with exposed browser API metadata to use CDP Page.setDownloadBehavior and Runtime.evaluate to overwrite vite.config.ts and execute attacker-controlled Node.js code. This issue is fixed in versions 3.2.5, 4.1.8, and 5.0.0-beta.
📍 영향받는 시스템
Vitest 3.0.0 ~ 3.2.5, 4.1.8 미만, 5.0.0-beta.4 미만 버전
⚔️ 공격 벡터
노출된 브라우저 API 메타데이터를 이용해 CDP 메서드를 호출하여 설정 파일을 변조하고 코드를 실행함
🛡️ 대응 방법
Vitest를 최신 보안 패치 버전(3.2.5, 4.1.8 또는 5.0.0-beta 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 Vitest의 버전을 확인하여 취약한 버전 범위에 포함되는지 체크합니다.