React2Shell RSC 원격 코드 실행

반응형

React2Shell RSC 원격 코드 실행

React2Shell RSC 원격 코드 실행

React2Shell RSC 원격 코드 실행

2025년 공개된 CVE-2025-55182, 일명 React2Shell 취약점이 전 세계 웹 생태계를 뒤흔들고 있음.
중국 해커 커뮤니티에서는 이미 실제 원격 코드 실행(RCE) 공격 테스트가 진행 중이며,
조사 결과 국내에서만 약 18만 9천여 대의 React·Next.js 기반 서버가 인터넷에 그대로 노출된 상황으로 파악됨.
본 문서는 React2Shell 구조, 공격 진행 정황, 한국 노출 현황, 위험성, 선제 대응 방안을 종합적으로 정리함.

1. React2Shell 취약점 개요

CVE-2025-55182는 리액트 서버 컴포넌트(React Server Components, RSC)의 직렬화 프로토콜 설계 결함에서 비롯된 취약점으로, 커뮤니티에서는 “2025년판 Log4Shell”이라는 표현이 나올 정도로 심각성이 강조되고 있다.

핵심 문제는 개발자가 특별한 실수를 하지 않아도, 기본 설정(default config)만으로 공격이 가능하다는 점이다. 인증 절차도 필요 없으며, 단일 HTTP 요청만으로 서버 측에서 임의 코드 실행이 가능하다는 특성 때문에 CVSS 10.0이 부여됐다.

React2Shell 취약점 핵심 특징 정리:
- RSC 직렬화 프로토콜의 구조적 설계 결함
- 인증 없이 공격 가능한 비인증 RCE (Unauthenticated RCE)
- 기본 설정(Default)만으로도 공격 표면이 열려 있음
- React·Next.js 19/15/16 등 대규모 생태계에 파급 가능

2. 중국 해커 커뮤니티에서 포착된 공격 테스트

데일리시큐 취재 및 보안 전문가 분석에 따르면, 중국 해커 커뮤니티에서는 이미 React2Shell 취약점을 활용한 실전 공격 테스트가 다수 포착되고 있다. 공격자들은 Next.js 기반 서비스를 대상으로 PoC 페이로드를 주입하고, DNSLog 서비스를 이용해 명령 실행 성공 여부를 수집하는 방식으로 벡터를 검증 중이다.

대표적인 공격 흐름은 다음과 같이 정리된다.

  • 대상 서버의 RSC 엔드포인트를 식별한 뒤, BurpSuite Repeater로 조작된 RSC 페이로드 전송
  • 서버가 외부 DNSLog 도메인에 쿼리를 발생하면, 코드 실행 가능성을 1차 확인
  • child_process 실행 가능 여부 검증 후 실제 시스템 명령 주입 단계로 전환
현재 단계는 단순한 이론 검증이 아니라,
“PoC 실행 → DNSLog 응답 확인 → 실제 명령 실행까지 완료된 상태”로 평가된다.

3. PoC 실행 성공 사례 – 원격 계산기 실행

React2Shell PoC 코드는 이미 GitHub와 여러 보안 연구 채널에 공개된 상태다. 일부 연구자들은 테스트 환경에서 해당 PoC를 실행해 윈도우 계산기(Calc.exe)를 원격으로 실행하는 장면을 확인했다.

BurpSuite Repeater를 통해 특수 조작된 RSC 페이로드를 서버로 전송하자, 즉시 서버 측에서 calc.exe 프로세스가 실행되는 모습이 로그와 화면으로 확인됐다. 이는 공격자가 서버 상에서 완전한 원격 코드 실행(RCE)을 달성할 수 있음을 의미한다.

보안 커뮤니티에서는 통상 “원격 계산기 실행”을 RCE 입증 데모로 사용하며, 이 단계까지 도달했다는 것은 이미 서버 장악이 가능한 수준의 공격 벡터가 완성되었다는 신호로 받아들인다.

4. 한국 18만 9천여 대 서버 노출 정황

중국 해커들이 즐겨 사용하는 공격 표면 탐지 플랫폼 FOFA에서 React·Next.js 기반 RSC 서버를 국가별로 조회한 결과, 한국에서만 18만 9,082대의 노출 자산이 확인된 것으로 알려졌다.

이는 국내 기업·기관·스타트업 다수가 React/Next.js 기반 서비스에서 RSC 기능을 활성화한 채 인터넷에 직접 노출해 운영하고 있음을 보여준다. 특히 많은 서비스가 기본 설정 상태로 서버 렌더링과 RSC를 사용하는 만큼, 대규모 무차별 공격의 잠재 타깃이 될 가능성이 매우 높다.

FOFA 검색 결과가 의미하는 바:
- 한국 React·Next.js 기반 서버 다수가 RSC 엔드포인트를 노출
- 공격자는 국가별 노출 자산 리스트를 “공격 준비용 목록”으로 활용
- 이미 한국 자산을 대상으로 한 대량 스캔이 진행 중일 가능성 큼

5. React2Shell이 특히 위험한 이유

전문가들은 React2Shell 취약점을 “Log4Shell에 버금가는 역대급 버그”로 평가하며 다음과 같은 이유를 든다.

  • 비인증 RCE: 공격자가 로그인을 하지 않아도 된다.
  • Zero-click에 가까운 공격: 사용자의 추가 행동이 필요 없다.
  • PoC·자동 스캐너 공개: GitHub, X 등에서 PoC와 스캐너 코드가 이미 유통 중이다.
  • 광범위한 생태계: React 19, Next.js 15/16 등 현대 웹 프레임워크 전반에 영향.
  • 기본 설정 자체가 취약: 개발자가 별도 보안 옵션을 켜지 않으면 방어하기 어렵다.

Log4Shell이 Java 기반 로그 라이브러리(Log4j)에 국한된 취약점이었다면, React2Shell은 현대 웹의 표준처럼 쓰이는 React·Next.js 프레임워크 자체를 겨냥한다는 점에서 파급력이 더 클 수 있다는 지적도 나온다.

6. 공격 체인: 사전 스캔에서 서버 장악까지

데일리시큐와 보안 전문가 분석을 종합하면, 실제 공격자는 이미 다음과 같은 루틴으로 움직이고 있다.

  • FOFA 등 공격 표면 탐지 도구로 국가·도메인별 React/Next.js 자산 수집
  • React2Shell Checker 등 자동화 스캐너로 RSC 엔드포인트 취약성 점검
  • DNSLog 기반 PoC를 실행해 명령 실행 가능 여부 검증
  • 취약 서버 리스트를 따로 저장한 뒤, PoC 페이로드를 실제 악성 payload로 교체
  • 최종적으로 child_process·파일 업로드·리버스 셸 등으로 시스템 장악
이 단계는 단순 탐색이 아니라 “실전 공격 직전 단계”로 볼 수 있음.
한국처럼 노출 서버 수가 많은 국가는 우선 타깃이 될 가능성이 매우 높다.

7. 패치 상황과 현실적인 위험

React 팀은 3일 CVE-2025-55182에 대한 패치를 긴급 발표하고, RSC 직렬화 프로토콜의 구조적 결함을 수정한 신규 버전을 배포했다. 그러나 React는 자동 업데이트 구조가 아니기 때문에, 각 조직이 직접 버전을 올리고 애플리케이션을 재빌드·재배포하지 않으면 여전히 취약한 상태가 유지된다.

Next.js 기반 서비스는 React 패치 적용 후 다시 빌드·배포하는 과정이 필요해, 실제 운영 환경에 패치가 반영되기까지 상당한 시차가 발생할 수 있다. 전문가들은 “패치는 나왔지만, 대부분의 서버는 아직 위험한 상태”라고 경고하고 있다.

8. RSC 사용 여부조차 모르는 조직의 리스크

현실적으로 많은 개발팀은 애플리케이션 내부에서 RSC·Server Actions 기능이 어디까지 사용되는지 완전히 파악하지 못한 채 Next.js 기본 템플릿을 그대로 이용하는 경우가 많다.

이 때문에 조직 내부에서는 우선 다음과 같은 점검이 필요하다.

  • 코드베이스에서 RSC, Server Actions 사용 여부 및 경로 전수 조사
  • RSC 엔드포인트가 외부에 노출된 실제 URL 목록 정리
  • 내부·외부 경계 구분 없이 동일 코드가 배포된 환경이 있는지 확인

9. 기업이 지금 당장 해야 할 대응

보안 전문가들은 React2Shell과 관련해 다음과 같은 비상 조치를 권고한다.

  • React·Next.js 버전 확인 후, 권고된 보안 버전으로 즉시 업그레이드 및 재배포
  • Nuclei, React2Shell Checker 등으로 자사 도메인·서브도메인·클라우드 인스턴스 스캔
  • WAF에서 RSC 관련 엔드포인트에 대한 의심스러운 대형 페이로드·multipart 요청 차단 룰 추가
  • 서버·프록시·DNS 로그에서 DNSLog 호출·비정상 POST 요청·에러 패턴 등 이상 징후 탐지
  • 취약성 스캐너에 의해 탐지된 자산은 우선적으로 격리·점검 후 서비스 재구성
특히 로그 상에서 이미 의심스러운 RSC 요청 흔적이 발견되었다면,
“공격 시도” 단계가 아니라 “부분 침해” 상태일 가능성까지 고려해야 한다.

10. React2Shell이 남긴 시사점

React2Shell 취약점은 단순히 특정 버전의 버그를 넘어, 현대 웹 프레임워크가 자동화된 서버 기능과 RPC 유사 구조를 도입하면서 얻은 편의성이 어떤 보안 리스크를 초래할 수 있는지를 적나라하게 보여주는 사례다.

전문가들은 이번 사건이 React·Next.js뿐 아니라 다른 서버 렌더링 프레임워크 전반에 대한 “보안 중심 재설계”를 요구하는 계기가 될 것이라고 보고 있다. 패치 적용은 선택이 아니라, 서비스 생존을 위한 필수 조건이다.

요약하면,
- React2Shell은 Log4Shell급 비인증 RCE 취약점이며
- 중국 해커들은 이미 PoC를 실전 수준으로 활용 중이고
- 한국만 18만 대가 넘는 서버가 공격 표면에 노출된 상황이다.
지금 필요한 것은 “위험 인지”가 아니라 즉각적인 패치와 선제적 점검이다.
반응형