Next.js 개발 서버(next dev)에서 크로스 사이트 WebSocket 하이재킹(CSWSH)과 크로스 오리진 스크립트 인클루전 두 가지 취약점이 발견됐다. 오리진 검증이 불충분해 공격자가 로컬 컴포넌트 소스 코드를 탈취할 수 있으며, 영향 범위는 개발 환경으로 한정된다. Next.js 14.2.30 및 15.2.2에서 수정됐다.
핵심 포인트- 영향 범위: Next.js 13.0.0~14.2.29, 15.0.0~15.2.1 버전의 로컬 개발 서버에만 해당한다. Vercel 프로덕션 배포는 영향 없다.
- 두 가지 공격 벡터: CSWSH로 App Router 컴포넌트 코드에 접근, 크로스 오리진 스크립트 인클루전으로 소스 코드 추출이 가능하다.
- 근본 원인: 로컬 개발 서버 리소스에 대한 오리진 검증 부재다.
- 수정 버전: 14.2.30, 15.2.2에서 오리진 검사 옵션이 추가됐으며 향후 메이저 버전에서 필수화 예정이다.
- 완화 조치: next dev 실행 중 신뢰할 수 없는 사이트 방문 금지, 방화벽·프록시로 개발 서버 접근을 제한한다.
상세 정리- CSWSH 공격: 공격자가 next dev 실행 중인 localhost에 WebSocket 연결을 맺어 App Router의 내부 컴포넌트 코드에 접근할 수 있다.
- 크로스 오리진 스크립트 인클루전 공격: 공격자가 예측 가능한 개발 서버 경로에 스크립트 태그를 주입해 소스 코드를 추출할 수 있다.
- 취약점 원인: 로컬 개발 서버 리소스에 대한 오리진 검증이 불충분하다. 브라우저의 Same-Origin Policy를 우회하는 방식이다.
- 영향받는 버전: Next.js 13.0.0~14.2.29, 15.0.0~15.2.1이다.
- 수정 내용: 14.2.30, 15.2.2에서 오리진 검사를 활성화하는 설정 옵션이 추가됐다. 향후 메이저 릴리즈에서 이 옵션이 필수가 된다.
- 심각도: 낮음(Low). 공격자가 개발자의 브라우저로 신뢰할 수 없는 사이트를 방문하게 만들어야 하는 사회공학적 전제 조건이 필요하다.
- 프로덕션 안전: Vercel 프로덕션 배포는 영향을 받지 않는다. 개발 환경 전용 취약점이다.
왜 읽나Next.js로 개발 중인 프론트엔드·풀스택 개발자가 로컬 개발 환경의 보안 위협을 이해하고 영향받는 버전을 즉시 업그레이드할 수 있도록 핵심 정보를 제공한다.