🇰🇷 한글 설명
Yeger 모노레포의 turbo-graph 패키지가 인증 및 권한 부여 없이 모든 네트워크 인터페이스에서 Next.js 서버를 실행하는 취약점이 발견되었습니다. 공격자는 /api/run 핸들러를 통해 임의의 Turbo 작업을 실행할 수 있으며, 이는 개발자 권한으로 시스템 파일 수정이나 비밀 정보 유출을 초래할 수 있습니다.
💡 쉬운 설명
개발 도구의 특정 기능이 암호 없이 열려 있어, 같은 네트워크에 있는 해커가 내 컴퓨터에서 허용된 명령어를 마음대로 실행할 수 있는 문제입니다. 이를 통해 해커가 중요한 파일을 훔치거나 컴퓨터 설정을 망가뜨릴 수 있습니다.
🇺🇸 원문 (English)
Yeger is a monorepo for npm packages maintained under the yeger scope. Prior to 2.8.9, the turbo-graph package starts its embedded Next.js server from packages/turbo-graph/src/index.ts on all interfaces, including 0.0.0.0:29312 by default, while the GET handler for /api/run in packages/turbo-graph-ui/app/api/run/route.ts has no authentication, authorization, CSRF protection, or task allowlist. The handler accepts the tasks, filter, and force query parameters, and buildResponseFromArgs passes attacker-selected task names to spawn() as Turbo CLI arguments. An adjacent-network attacker can execute any task defined in the victim repository's turbo.json with the privileges of the developer OS user, potentially exposing secrets, modifying files or infrastructure, or causing destructive availability effects. The use of an argument array prevents traditional shell metacharacter injection but does not prevent unauthorized execution of defined tasks. This issue is fixed in version 2.8.9.
📍 영향받는 시스템
Yeger monorepo (turbo-graph 패키지) 2.8.9 미만 버전
⚔️ 공격 벡터
인접 네트워크의 공격자가 인증 없이 /api/run API 엔드포인트에 조작된 파라미터를 전송하여 공격
🛡️ 대응 방법
Yeger 패키지를 2.8.9 버전 이상으로 업데이트
🔧 검증 코드
출력된 결과에서 @yeger/turbo-graph의 버전이 2.8.9 미만인지 확인
npm list -g @yeger/turbo-graph || npm list @yeger/turbo-graph