이어서 읽기
React, NextJS 사용하는 회사 필독! 보안 취약점 및 패치 방법 정리 : CVE-2025-55182, 66478 Post Thumbnail

React, NextJS 사용하는 회사 필독! 보안 취약점 및 패치 방법 정리 : CVE-2025-55182, 66478

React와 Next.js 프레임워크에서 보안 위험도가 가장 높은 CVSS 10점 취약점이 공개되었습니다. 이 글에서는 해당 취약점이 무엇인지 간단히 정리하고, 우리 서비스가 영향을 받는지 확인하는 방법과 안전하게 패치하는 방법을 살펴봅니다.

Q1. 이번 React·NextJS 취약점(CVE-2025-55182 / CVE-2025-66478)은 어떤 문제인가요?

React Server Components(RSC) 관련 패키지에서 인증 없이 원격 코드 실행(RCE) 이 가능한 취약점으로, NextJS 프로젝트도 영향을 받을 수 있습니다.


Q2. 내 NextJS 프로젝트가 취약한 버전인지 어떻게 확인하나요?

npx next --version 또는 npm ls react-server-dom-* 명령으로 Next 버전과 RSC 관련 패키지 존재 여부를 확인할 수 있습니다.


Q3. 취약한 NextJS 버전은 무엇인가요?

Next.js 15.x, 16.x, 그리고 14.3.0-canary.77 이후 Canary 릴리스가 해당 취약점의 영향을 받습니다.


Q4. 이번 보안 이슈를 해결하려면 어떤 버전으로 패치해야 하나요?

NextJS는 15.5.7 및 16.0.7 등에서 취약점을 해결했습니다. npm install next@latest로 최신 안전 버전으로 업데이트하는 것을 권장합니다.


Q5. 패치를 당장 적용하기 어렵다면 어떻게 해야 하나요?

RSC 관련 엔드포인트 접근을 네트워크·미들웨어·WAF에서 차단하고 요청 검증을 강화하는 임시 방어 조치를 적용할 수 있습니다.


React, NextJS 는 버전을 확인하고 패치를 진행해야 합니다

핵심 요약

React 필수 패키지 내에 인증 없이 원격 코드 실행(RCE) 이 가능한 취약점이 공개되었습니다. 이 React 패키지는 인기 프레임워크인 NextJS 내부에서도 사용되고 있어, NextJS 기반 서비스는 반드시 버전 확인 및 패치가 필요합니다.

  • 1. npx next --versionnpm ls react-server-dom-* 명령으로 현재 Next 및 RSC 관련 패키지 버전을 즉시 확인합니다.

  • 2. 영향받는 경우 Next 16.0.7 / Next 15.5.7 등 패치 릴리스로 우선 업데이트 후, 로컬 빌드·테스트를 마친 뒤 배포합니다.

  • 3. 당장 패치가 어려운 환경이라면, 네트워크·미들웨어·WAF 레벨에서 RSC 관련 엔드포인트 접근을 제한하고 요청 검증을 강화하는 임시 조치를 병행합니다.

NextJS – 영향을 받는 버전

다음 NextJS 버전이 이번 취약점의 영향을 받습니다.

  • Next.js 15.x

  • Next.js 16.x

  • Next.js 14.3.0-canary.77 및 이후 Canary 릴리스

버전 확인은 package.json 확인 또는 아래 명령어로 할 수 있습니다.

npx next --version

React – 영향을 받는 버전 및 관련 패키지

React Server Components 관련 취약점은 다음 React 버전에 해당합니다.

  • React 19.0, 19.1.0, 19.1.1, 19.2.0

아래 패키지들이 관련되어 있습니다.

  • react-server-dom-webpack

  • react-server-dom-parcel

  • react-server-dom-turbopack

다음 명령어로 프로젝트에서 직접 사용 중인지 여부를 확인할 수 있습니다.

npm ls react-server-dom-parcel
npm ls react-server-dom-webpack
npm ls react-server-dom-turbopack

추가로, 해당 패키지가 어떤 의존 관계를 통해 포함되었는지는 다음 명령어로 확인합니다.

npm why react-server-dom-parcel
npm why react-server-dom-webpack
npm why react-server-dom-turbopack

취약점이 수정된 NextJS 버전

NextJS 측에서 공지한, 취약점이 해결된 버전은 다음과 같습니다.

  • Stable

    • 15.0.5

    • 15.1.9

    • 15.2.6

    • 15.3.6

    • 15.4.8

    • 15.5.7

    • 16.0.7

  • Canary

    • 15.6.0-canary.58 (15.x canary 라인)

    • 16.1.0-canary.12 (16.x canary 라인)

운영 중인 서비스가 위 버전 이전을 사용 중이라면, 가급적 이번 라인업 중 하나로 업데이트하는 것을 권장합니다.



최신 버전으로 업데이트하는 방법 (해결 방법)

1. 최신 버전 확인

npm view next version

글 발행일(2025년 12월 7일) 기준 next@16.0.7 이 최신 버전이며, NextJS에서 발표한 취약점 대응 버전에 해당합니다.

2. 기존 패키지 정리 (프로젝트 루트에서)

의존성 꼬임을 줄이기 위해 기존 node_modulespackage-lock.json 을 삭제한 뒤 재설치를 진행하는 것을 권장합니다.

rm -rf node_modules package-lock.json

Windows PowerShell 환경에서는 다음과 같이 실행합니다.

Remove-Item -Recurse -Force node_modules
Remove-Item -Force package-lock.json

3. NextJS 패치 진행

기본적인 NextJS 업데이트는 아래처럼 진행할 수 있습니다.

npm install next@latest

다만, 기존에 사용 중인 다른 패키지와의 호환성을 반드시 고려해야 합니다.

예를 들어 Weekerp에서는 글로벌 서비스를 위한 메시지 시스템으로 next-intl 을 사용 중인데, next 업데이트에 맞춰 다음과 같이 React·관련 패키지까지 함께 정리했습니다.

npm install next@latest react@18 react-dom@18 next-intl@latest @ant-design/nextjs-registry@latest

이미 React 18 기반 프로젝트라면 위와 같이 버전을 명시해 주는 편이 안전합니다.

팀 내에서 사용하는 ESLint, SWC, 번들러 플러그인 등과의 호환도 함께 확인하는 것을 추천합니다.

4. 설치된 패키지의 버전확인

설치가 끝났다면 실제로 어떤 버전이 올라갔는지 확인합니다.

 npm list next

필요하다면 react, react-dom, next-intl 등도 함께 확인해 두는 것이 좋습니다.

5. 빌드 및 실행 테스트

최종적으로 빌드가 정상 동작하는지 확인합니다.

npm run build
  • 로컬 빌드 성공

  • 주요 페이지 및 API 라우트 정상 응답

  • RSC 관련 기능을 사용하는 경우, 해당 부분 렌더링·데이터 패칭 확인

정도까지 확인 후 배포하는 흐름을 추천합니다.

버전 패치 시 함께 고려해야 할 사항

ESLint 설정 변화 (Next 16)

Next 16부터는 next.config.ts 안에서 eslint 옵션을 설정하는 기능이 제거되었습니다. 따라서 기존에 아래와 같이 사용하던 설정은 삭제해야 합니다.


(기존 코드 - 예시)

const nextConfig: NextConfig = {
  output: 'standalone',
  productionBrowserSourceMaps: false,
  reactStrictMode: false,
  eslint: {
    ignoreDuringBuilds: true,
  },
  compiler: {
    styledComponents: {
      ssr: true,
      displayName: !isProd,
      pure: true
    },
    ...(isProd && {
      removeConsole: {
        exclude: ["error", "warn"],
      },
    }),
  },

(기존 코드 - 삭제 후 )

const nextConfig: NextConfig = {
  output: 'standalone',
  productionBrowserSourceMaps: false,
  reactStrictMode: false,
  // --------------------------------- delete block --
  // eslint: {
  //   ignoreDuringBuilds: true,
  // },
  // ---------------------------------------------------
  compiler: {
    styledComponents: {
      ssr: true,
      displayName: !isProd,
      pure: true
    },
    ...(isProd && {
      removeConsole: {
        exclude: ["error", "warn"],
      },
    }),
  },

ESLint 무시 설정이 필요하다면, 이제는 별도의 ESLint 설정 파일(.eslintrc 등)과 CI 파이프라인 레벨에서 관리하는 것을 권장합니다.


본문의 용어 설명

CVE(Common Vulnerabilities and Exposures)

CVE는 전 세계 보안 취약점을 식별하기 위해 부여하는 고유 번호입니다.
예를 들어 CVE-2025-55182 같은 형식이죠.

이 번호가 붙는 순간,

  • 어떤 취약점인지

  • 어디에 영향을 미치는지

  • 어떤 버전에서 발생하는지

전 세계 보안팀과 개발자들이 같은 기준으로 동일한 취약점을 이야기할 수 있게 됩니다.

CVSS(Common Vulnerability Scoring System)

CVSS는 공개된 취약점이 얼마나 위험한지 0~10점으로 평가한 국제 표준 점수입니다.
10점은 사실상 “가장 위험한 수준”을 의미합니다.

점수는 다음 요소를 종합해 계산돼요:

  • 악용 난이도 (Exploitability)

  • 영향 범위 (Impact)

  • 네트워크 접근성 여부

  • 사용자 개입 필요 여부 등

그래서 CVSS는 보안팀이 패치 우선순위를 결정할 때 가장 먼저 보는 지표입니다.
예: “CVSS 10점, 즉시 대응해야 하는 심각한 취약점”



마치며

이번 취약점은 기본 설정 상태의 React Server Components(RSC)·Next.js 환경에서도 원격 코드 실행(RCE)이 가능한 수준의 심각한 이슈입니다. 특히 취약점 공개 직후, 이를 악용해 볼 수 있는 POC 코드가 빠르게 공유되면서 실제 공격 시도 가능성도 같이 높아지고 있습니다.


그래서 다음 두 가지를 강하게 추천합니다.

  1. 내 서비스의 Next/React 버전 및 react-server-dom-* 패키지 존재 여부를 즉시 확인
  2. 영향받는 버전이라면 가능한 한 빨리 패치 릴리스로 업데이트하고,
    단기간 내 패치가 어렵다면 WAF·프록시·미들웨어 레벨에서 RSC 관련 경로를 제한하는 임시 방어선을 마련한다.

운영 중인 서비스의 규모가 커질수록, 이런 대형 취약점에 대한 대응 속도가 곧 서비스 신뢰도와 인시던트 비용을 가르는 포인트가 되니, 빠르게 조치하시길 권장합니다.



참고

[1] NextJS 보안권고 - https://nextjs.org/blog/CVE-2025-664

[2] React 공식 블로그 - React Server Components 관련 취약점 공지

[3] POC 코드 - https://github.com/whiteov3rflow/CVE-2025-55182-poc

# NextJS 보안 취약점# React RSC 취약점# CVE-2025-55182# CVE-2025-66478# NextJS 업데이트# React 취약점# 원격 코드 실행 RCE# npm 패키지 보안# NextJS 15.x 16.x 보안 패치 가이드

지금 이 글이 마음에 드셨나요?

위커프의 SEO·AEO 인사이트를 계속 받아보고 싶다면, 무료 뉴스레터를 구독하세요.

위커프 강민준's profile image
위커프 강민준

위커프 대표 강민준입니다. IT 스타트업의 지속가능한 성장을 돕고 있습니다 더 많은 기업에게 시간을 선물하고자 하며 항상 도움이 되실만한 주제로 찾아올게요