pile·
보안·vercel-blogVercel Blog·

React2Shell을 위한 100만 달러 해커 챌린지

React Server Components(RSC)에서 임의 코드 실행을 허용하는 CVE-2025-55182가 공개됐다. 심각도 10.0 만점의 이 취약점은 JavaScript의 `constructor` 프로퍼티를 React 렌더링 도중 코드 평가에 악용한다. Vercel은 WAF 방어 레이어를 배포해 공개 후 수 주 만에 600만 건 이상의 공격 시도를 차단했고, 독립적인 100만 달러 바운티 프로그램으로 20개의 고유 우회 기법을 발굴해 즉시 패치했다.

핵심 포인트
  • **CVE-2025-55182 (CVSS 10.0)**: React Server Components의 RCE — `constructor` 프로퍼티로 서버에서 임의 코드 실행
  • **Vercel 2단계 방어**: WAF(Seawall) 딥 페이로드 인스펙션 + 런타임 `constructor` 접근 차단 (트래픽의 96% 적용)
  • **바운티 결과**: 116명 참여, 156건 제출, 20개 고유 우회 기법 발굴, 20건 WAF 업데이트 48시간 내 배포
상세 정리
취약점 메커니즘공격 페이로드는 다음과 같다:```{0: {status: "resolved_model", reason: 0, _response: {_prefix:"console.log('☠️')//", _formData: {get: "$1:then:constructor"}}}}```이 페이로드가 취약한 서버에 도달하면, `constructor` 프로퍼티가 React 렌더링 과정에서 임의 명령 실행을 트리거한다. 공격자는 서버에서 프로그램을 실행하거나 시크릿을 추출하거나 네트워크 호출을 할 수 있다.
Vercel의 2단계 방어

*Layer 1: WAF (Seawall)* 요청이 애플리케이션에 도달하기 전에 페이로드를 딥 인스펙션한다. 취약점 공개 후 수 주 만에 600만 건 이상의 공격 시도를 차단했으며, 단일 24시간 동안 230만 건을 차단한 날도 있었다.

*Layer 2: 런타임 완화* 컴퓨트 레이어에서 React 렌더링 도중 `constructor` 프로퍼티 접근 자체를 차단한다. Vercel 트래픽의 96%에 적용된다.

바운티 프로그램 결과Vercel은 WAF 우회 기법 1개당 5만 달러를 지급하는 바운티 프로그램을 운영했다:
  • 참여 연구자: 116명
  • 총 제출: 156건
  • 검증된 공개: 38건
  • 고유 우회 기법: 20개
  • WAF 업데이트: 20건 (48시간 내 배포)
발견된 주요 우회 기법
  • **재귀 UTF 인코딩**: 페이로드를 여러 번 유니코드 인코딩해 반복적인 JSON 디코딩 사이클을 유발, 패턴 매칭 방어 무력화
  • **Constructor 난독화**: `:constructor` 문자열 패턴을 피하는 프로퍼티 접근 방법 — webpack 특화 가젯을 이용한 난독화
왜 읽나Next.js App Router + React Server Components를 프로덕션에서 운영하는 엔지니어라면 이 취약점의 공격 메커니즘과 방어 방법을 이해해야 한다. WAF 우회 기법 분석은 보안 엔지니어에게 실질적인 사례 연구를 제공한다. 바운티 프로그램 운영 방식도 참고할 수 있다.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 보안·gitlab-engGitLab Blog·

    Serena MCP 에이전트의 치명적 원격 코드 실행 취약점 분석

    GitLab 보안팀이 AI 코딩 에이전트 Serena(월 PyPI 다운로드 13.6만 건)에서 치명적 원격 코드 실행 취약점을 발견했다. Jinja2 비샌드박스 환경과 신뢰 모델의 미검사 경로가 결합해 개발자가 악의적 저장소를 열기만 해도 코드가 실행된다. serena-agent 1.7.0에서 SandboxedEnvironment 교체로 수정 완료됐다.

    요약 이어보기
    #mcp#security#rce+2