React Server Components RCE (CVE-2025-55182) 완화하기

발행: (2025년 12월 24일 오후 12:15 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

React Server Components (RSC)는 최근 고위험 원격 코드 실행 취약점(CVE‑2025‑55182)의 영향을 받는 것으로 밝혀졌습니다.
공격자는 Next.js Server Actions와 같은 기능을 악용해 Flight 프로토콜에 악의적인 직렬화 데이터를 조작할 수 있으며, 이는 역직렬화 결함을 일으켜 서버에서 원격 코드 실행으로 이어질 수 있습니다.

CVE‑2025‑55182란?

React Server Components (RSC) 에는 원격 코드 실행을 초래할 수 있는 고위험 역직렬화 결함이 존재합니다.

영향을 받는 환경에서는 공격자가 다음을 수행할 수 있습니다:

  • React Flight 프로토콜악의적인 직렬화 페이로드를 제작
  • Next.js Server Actions("use server")를 악용
  • 안전하지 않은 역직렬화 로직을 트리거

결과: 서버에서 임의 코드 실행.
RSC와 Server Actions가 신뢰할 수 없는 입력에 노출되는 모든 지점이 공격 표면이 됩니다.

우선순위 1: 식별 및 패치 (주요 완화 조치)

가장 중요한 완화 방법은 식별 및 업그레이드입니다. WAF 규칙이 도움이 될 수는 있지만 근본 원인을 해결하는 것을 대체하지는 못합니다.

영향을 받았는지 확인하는 방법

다음 항목 대부분 또는 전체가 해당된다면 영향을 받았을 가능성이 높습니다:

  • Next.js를 사용 중이며, 특히 v13.4 이상
  • 애플리케이션이 React Server Components를 사용
  • 코드베이스에 "use server" 지시문(서버 액션)이 포함

중요한 참고 사항
취약한 패키지(react-server-dom-webpack)는 보통 Next.js에 내부적으로 번들됩니다. package.json에 나타나지 않을 수 있으니, 직접 의존성이 없다고 해서 안전하다고 가정하지 마세요.

업그레이드 권고

즉시 최신 보안 패치가 적용된 Next.js 버전으로 업그레이드하십시오.

작성 시점 기준으로는 다음을 의미합니다:

  • Next.js 14.x의 패치 릴리스, 혹은
  • Next.js 15.x 이상의 고정 버전

React 팀은 악의적인 Thenable 객체의 안전하지 않은 파싱을 수정함으로써 역직렬화 취약점의 근본 원인을 해결했습니다.

이것이 유일한 완전한 해결책입니다.
그 외의 모든 조치는 일시적인 위험 감소 조치로 간주해야 합니다.

우선순위 2: SafeLine을 이용한 WAF‑레벨 완화

즉시 업그레이드가 불가능한 경우(예: 릴리즈 동결, 레거시 의존성) WAF 레벨에서 방어층을 추가할 수 있습니다. 이는 취약점을 제거하지는 않지만, 알려진 공격 패턴을 차단하는 데 도움이 됩니다.

예시: SafeLine 커스텀 차단 규칙

SafeLine WAF에서 다음 조건을 갖는 커스텀 차단 규칙을 설정합니다:

요청 헤더
Content-Type이 (정규식) multipart와 일치

그리고

요청 본문
정규식 매치: [’”]?then[’”]?\s*:\s*[’”]?$1:proto:then

SafeLine rule example

이 규칙은 직렬화 데이터에서 Thenable 구조를 악용하려는 RSC 역직렬화 로직 공격 페이로드를 차단하는 것을 목표로 합니다.

이 규칙이 하는 일 (및 하지 않는 일)

  • ✅ 알려진 공격 서명을 차단하는 데 도움

  • ✅ 패치 적용 기간 동안 노출을 감소

  • ❌ 새로운 혹은 난독화된 페이로드에 대한 보호를 보장하지 않음

  • ❌ Next.js 업그레이드를 대체하지 않음

이를 시트벨트에 비유하면, 치료제가 아니라 보조 안전장치입니다.

결론

  • Next.js + RSC + Server Actions를 사용한다면, 입증될 때까지 노출된 것으로 가정하세요.
  • 업그레이드는 선택이 아닌 필수입니다.
  • SafeLine과 같은 WAF 규칙은 깊이 있는 방어 차원에서, 특히 전환 기간 동안에 가장 효과적입니다.

잘 구성된 WAF는 귀중한 시간을 벌어줄 수 있지만, 애플리케이션 레이어의 취약점은 경계만으로 완전히 해결될 수 없습니다.

Back to Blog

관련 글

더 보기 »