🔍 CVE-2026-119201

4.8
CVSS Score
MEDIUM
2026-10-29
2026-10-29 21:17
✅ 완료

🇰🇷 한글 설명

Nuxt 4.6.0부터 4.6.3 이전 버전의 nuxt dev는 생성된 appSecret을 기본적으로 .nuxt/app-secret 파일에 저장하며, 이 파일은 Vite의 server.fs 설정상 접근 가능한 디렉터리 안에 위치합니다. 개발 서버에 직접 HTTP로 접근할 수 있는 클라이언트는 이 파일을 내려받아 deriveSecret()으로 useSession 기본 비밀번호 등 파생 비밀값을 계산하고, 개발 서버가 수락하는 세션 쿠키를 위조할 수 있습니다. 기본 localhost 바인딩으로 원격 노출은 제한되며, 교차 출처 브라우저 읽기는 차단되고, 프로덕션 빌드와 appSecret을 명시적으로 설정한 개발 서버는 영향을 받지 않습니다.

💡 쉬운 설명

Nuxt 개발 서버를 외부에서 접근 가능하게 열어둔 경우, 공격자가 내부 비밀 파일을 내려받아 로그인 세션을 위조할 수 있습니다. 프로덕션 환경과 비밀값을 직접 설정한 경우에는 해당되지 않습니다.

🇺🇸 원문 (English)

Nuxt is an open-source web development framework for Vue.js. From 4.6.0 until 4.6.3, nuxt dev stores a generated appSecret in <buildDir>/app-secret, by default .nuxt/app-secret, within a directory allowed by Vite's server.fs configuration. A client with direct HTTP access to an exposed development server can fetch the file, use deriveSecret() to compute derived secrets such as the default useSession password, and forge session cookies accepted by that development server. The default localhost binding limits remote exposure, cross-origin browser reads are blocked, production builds and development servers with an explicitly configured appSecret are not affected. This issue is fixed in version 4.6.3.

📍 영향받는 시스템

Nuxt 4.6.0 이상 4.6.3 미만의 nuxt dev 개발 서버 (프로덕션 빌드 제외)

⚔️ 공격 벡터

외부에 노출된 Nuxt 개발 서버에 HTTP 요청으로 .nuxt/app-secret 파일을 받아 파생 비밀값을 계산한 뒤 세션 쿠키를 위조

🛡️ 대응 방법

Nuxt를 4.6.3 이상으로 업그레이드하고, 개발 서버를 외부에 노출하지 않으며 nuxt.config에서 appSecret을 명시적으로 설정

🔧 검증 코드

출력된 nuxt 버전이 4.6.0 이상 4.6.3 미만이면 취약하며, 4.6.3 이상이면 패치된 상태입니다.

Shell / Script
cat package.json 2>/dev/null | grep -E '"nuxt"' ; ls node_modules/nuxt/package.json 2>/dev/null && grep '"version"' node_modules/nuxt/package.json

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N

💻 영향받는 소프트웨어

Splunk MCP Server app