🇰🇷 한글 설명
Fallow는 TypeScript 및 JavaScript용 코드베이스 분석 도구입니다. 2.68.0부터 3.34.0 이전 버전까지, Fallow는 절대 경로, 상위 디렉터리(..) 세그먼트, 점(.)으로 시작하는 와일드카드 글롭, 심볼릭 링크를 통해 프로젝트 루트 외부에 있는 공격자 제어 Jest 프로젝트 경로를 따라갑니다. 3.33.1 버전에서는 Vitest test.projects 경로, Vitest 인라인 프로젝트 extends 경로, 심볼릭 링크된 script --config 경로에도 같은 동작이 영향을 미칩니다. 외부 파일 내용은 출력되거나 네트워크로 전송되지 않으나, CI 또는 에이전트 분석에서 미사용 의존성 및 미사용 파일 탐지 결과가 바뀔 수 있습니다. 3.34.0 버전에서 수정되었습니다.
💡 쉬운 설명
분석 도구가 프로젝트 밖에 있는 설정 파일을 잘못 읽어 실제 사용 여부를 잘못 판단할 수 있는 문제입니다. 외부 파일 내용이 유출되지는 않지만 분석 결과가 왜곡될 수 있습니다.
🇺🇸 원문 (English)
Fallow is a codebase intelligence tool for TypeScript and JavaScript. From 2.68.0 until 3.34.0, Fallow follows attacker-controlled Jest projects paths outside the project root through absolute paths, parent segments, dot-prefixed wildcard globs, or symlinks. In version 3.33.1, the same behavior also affects Vitest test.projects paths, Vitest inline-project extends paths, and symlinked script --config paths. Fallow parses the outside files as test-runner configuration and uses them to credit dependencies, setup files, and JSX import sources, which can change unused dependency and unused file findings in CI or agent analysis. The outside file contents are not printed or sent over the network. This issue is fixed in version 3.34.0.
📍 영향받는 시스템
Fallow 2.68.0 이상 3.34.0 미만 (3.33.1 포함 Vitest/script 경로 영향)
⚔️ 공격 벡터
공격자가 저장소 내 Jest/Vitest 설정에 프로젝트 루트 외부 경로, 절대 경로, 심볼릭 링크를 삽입해 분석 도구가 외부 파일을 설정으로 읽게 함
🛡️ 대응 방법
Fallow를 3.34.0 이상으로 업그레이드하고, 신뢰할 수 없는 저장소의 설정 파일과 심볼릭 링크를 검토
🔧 검증 코드
출력된 fallow 버전이 3.34.0 미만이면 취약하며, 3.34.0 이상이면 수정된 버전입니다 (설치되지 않았다면 출력이 없음).
npm ls fallow 2>/dev/null | grep -i fallow