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 보안 패치 가이드

함께 보면 좋은 글

우리 회사의 서버 비용, 잘 관리하고 있나요? 서비스 스케일업에 발맞추어 AWS S3 vs CloudFront(CDN)의 전송 속도와 요금을 비교한 글입니다.

이어서 읽기
위커프 강민준's profile image
위커프 강민준

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