## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-STEALTHMOUD-CVE-2025-55182-SCANNER
# CVE-2025-55182 - React Server Components RCE μ€μΊλ
  
CVE-2025-55182μ λν ν¬κ΄μ μΈ λ³΄μ ν
μ€νΈ λꡬμ
λλ€. React Server Componentsμ μ¬κ°ν μ¬μ μΈμ¦ μ격 μ½λ μ€ν μ·¨μ½μ μ
λλ€.
* * *
## π μλ‘μ΄ κΈ°λ₯: μμ ν κ΅μ‘ κ°μ΄λ μ 곡!
> **μ΄ μ·¨μ½μ μ 100% μ΄ν΄νκ³ μΆμΌμ κ°μ?**
>
> π **μμ ν κΈ°μ λΆμ μ½κΈ°** \- μμμΌ ν λͺ¨λ κ²:
>
> * Reactκ° μλ²μμ μ€νλλ μ΄μ (λΈλΌμ°μ λ§μ΄ μλλλ€!)
> * μκ°μ λ€μ΄μ΄κ·Έλ¨μ ν΅ν 곡격 μλ λ°©μ
> * μ΅μ€νλ‘μμ λͺ¨λ λΌμΈ μ€λͺ
> * μ΄λ³΄μ κ°λ
λΆν° κ³ κΈ μ΅μ€νλ‘μκΉμ§
> * μ¬μ μꡬ μ¬ν μμ!
>
>
> **μ ν©ν λμ:** 보μ λ³΄κ³ μ, κ΅μ‘ μλ£, μν λΆμ, λλ κ·Έλ₯ νμ΅!
* * *
## π κ°μ
μ΄ μ·¨μ½μ μ React Server Components λ²μ **19.0.0λΆν° 19.2.0κΉμ§** μ μν₯μ λ―ΈμΉλ©°, λ€μμ μν₯μ μ€λλ€:
* `react-server-dom-parcel`
* `react-server-dom-turbopack`
* `react-server-dom-webpack`
**μν₯:** μΈμ¦λμ§ μμ 곡격μκ° μλ² ν¨μ μλν¬μΈνΈμ λν HTTP μμ² νμ΄λ‘λμ μμ νμ§ μμ μμ§λ ¬νλ₯Ό ν΅ν΄ μ격μΌλ‘ μμ μ½λλ₯Ό μ€νν μ μμ΅λλ€.
### π μ΄ μ·¨μ½μ μ μμ ν μ΄ν΄νκ³ μΆμΌμ κ°μ?
π **μμ ν κΈ°μ λΆμ μ½κΈ°** \- λ€μμ ν¬ν¨νλ ν¬κ΄μ μΈ κ°μ΄λ:
* β
**Reactκ° μλ²μμ μ€νλλ μ΄μ ** (λΈλΌμ°μ λ§μ΄ μλλλ€!)
* β
**μλ² μ»΄ν¬λνΈλ 무μμΈκ°** κ·Έλ¦¬κ³ μ΄λ»κ² μλνλμ§
* β
**λ¨κ³λ³ 곡격 νλ¦** μκ°μ λ€μ΄μ΄κ·Έλ¨ ν¬ν¨
* β
**μμ ν νμ΄λ‘λ λΆμ** \- λͺ¨λ λΌμΈ μ€λͺ
* β
**νλ‘ν νμ
μ€μΌ μ€λͺ
** κΈ°μ΄λΆν° μ΅μ€νλ‘μκΉμ§
* β
**μ€μ κ°λ
μ¦λͺ
** μμ ν¬ν¨
* β
**νμ§ λ°©λ²** λ° λ³΄μ μ§ν
**μ ν©ν λμ:**
* π νλ μΉ μ·¨μ½μ μ΄ μ΄λ»κ² μλνλμ§ λ°°μ°κΈ°
* π μν λΆμμ νλ 보μ μ λ¬Έκ°
* π¨βπ» μνμ μ΄ν΄νλ €λ κ°λ°μ
* π 보μ λ³΄κ³ μ λ° λ°ν μλ£ μμ±
**μ¬μ μ§μ λΆνμ** \- κΈ°μ΄λΆν° μμνμ¬ κ³ κΈ μ΅μ€νλ‘μ κΈ°μ κΉμ§ λ€λ£Ήλλ€!
* * *
## β οΈ λ²μ κ³ μ§
**κ΅μ‘ λ° μΉμΈλ 보μ ν
μ€νΈ μ©λλ‘λ§ μ¬μ©νμΈμ**
μ΄ λꡬλ λ€μ μ©λλ‘λ§ μ¬μ©λ©λλ€:
* 보μ μ°κ΅¬
* μΉμΈλ μΉ¨ν¬ ν
μ€νΈ
* κ΅μ‘ λͺ©μ
**κ²½κ³ :** μ»΄ν¨ν° μμ€ν
μ λν λ¬΄λ¨ μ κ·Όμ λΆλ²μ
λλ€. μ¬μ©μλ λͺ¨λ κ΄λ ¨ λ²λ₯ λ° κ·μ μ μ€μν μ±
μμ΄ μμ΅λλ€. μ μλ μ΄ λꡬμ μ€μ©μ λν΄ μ±
μμ μ§μ§ μμ΅λλ€.
* * *
## π― λΉ λ₯Έ μμ μ΅μ
### μ΅μ
1: λ
립 μ€νν μ΅μ€νλ‘μ μ€ν¬λ¦½νΈ (κ°μ₯ λΉ λ¦)
μ’
μμ± λΆνμ! λΉ λ₯Έ ν
μ€νΈλ₯Ό μν λ¨μΌ bash μ€ν¬λ¦½νΈ.
π **EXPLOIT_SCRIPT.md** \- λ€μμ μννλ λ
립 μ€νν μ€ν¬λ¦½νΈ:
* β
νλμ λͺ
λ Ήμ΄λ‘ μ·¨μ½μ ν
μ€νΈ
* β
λνν μ
Έ μ 곡
* β
Nuclei λλ Docker μμ΄ λμ
* β
λ¨μΌ λλ λ€μ€ λμ μ§μ
root@kitploit:~
# Single target
./exploit-cve-2025-55182.sh http://target.com
# Multiple targets
./exploit-cve-2025-55182.sh -f targets.txt
### μ΅μ
2: μ 체 μ€μΊλ μ νκ΅° (μ΅λ κΈ°λ₯)
Docker, μΉ UI λ° Nuclei ν΅ν©μ΄ ν¬ν¨λ μμ ν λꡬ ν€νΈμ
λλ€. μ€μΉ λ°©λ²μ μλλ₯Ό κ³μ μ½μΌμΈμ.
* * *
## π κΈ°λ₯
* * *
## π μ¬μ μꡬ μ¬ν
μ€μΉ λ°©λ² μ ν:
### Docker (κΆμ₯)
* Docker Desktop μ€μΉ λ° μ€ν μ€
### λ‘컬 μ€μΉ
* Node.js 18+ (μ·¨μ½ μ±μ©)
* Nuclei μ€μΊλ (Homebrew λλ Goλ₯Ό ν΅ν΄ μ€μΉ)
* macOS, Linux, λλ WSL2λ₯Ό μ¬μ©ν Windows
* * *
## π οΈ μ€μΉ
### Dockerλ‘ λΉ λ₯Έ μμ
root@kitploit:~
# Clone repository
git clone https://github.com/StealthMoud/CVE-2025-55182-Scanner.git
cd CVE-2025-55182-Scanner
# Start scanner
docker compose up
# Access web interface at http://localhost:3001
### λ‘컬 μ€μΉ
root@kitploit:~
# Clone repository
git clone https://github.com/StealthMoud/CVE-2025-55182-Scanner.git
cd CVE-2025-55182-Scanner
# Install Nuclei (macOS)
brew install nuclei
# Make scripts executable
chmod +x scripts/*.sh
π **μμΈ μ€μ :** λ¨κ³λ³ μ§μΉ¨μ SETUP_GUIDE.mdλ₯Ό μ°Έμ‘°νμΈμ
β‘ **λΉ λ₯Έ μ°Έμ‘°:** μΌλ°μ μΈ μ¬μ© μ¬λ‘λ QUICKSTART.mdλ₯Ό μ°Έμ‘°νμΈμ
* * *
## π μ¬μ©λ²
### π³ Docker λͺ¨λ
**μΉ μΈν°νμ΄μ€ μμ:**
root@kitploit:~
docker compose up
# Open browser: http://localhost:3001
**μ·¨μ½ ν
μ€νΈ μ±κ³Ό ν¨κ» μμ:**
root@kitploit:~
docker compose --profile with-vulnerable-app up
# Scanner: http://localhost:3001
# Vulnerable app: http://localhost:3000
**Docker μ¬μ©μ μ€μ μ¬ν:** Dockerμμ μ€μΊν λ λ€μμ μ¬μ©νμΈμ:
* `http://host.docker.internal:3000` νΈμ€νΈ λ¨Έμ μ μ±μ μ€μΊν λ
* `http://vulnerable-app:3000` 컨ν
μ΄λνλ μ·¨μ½ μ±μ μ€μΊν λ
* `https://example.com` μΈλΆ λμ μ€μΊ μ
* * *
### π μΉ μΈν°νμ΄μ€
1. `http://localhost:3001`λ‘ μ΄λν©λλ€.
2. λͺ¨λ μ ν:
* **μ·¨μ½μ νμ§** \- λμμ΄ μ·¨μ½νμ§ νμΈ
* **λͺ
λ Ήμ΄ μ€ν** \- μ·¨μ½ν λμμμ OS λͺ
λ Ήμ΄ μ€ν
3. λμ URL μ
λ ₯
4. μΉμΈ νμΈλ μ ν
5. **μ€μΊ μμ** λλ **λͺ
λ Ήμ΄ μ€ν** ν΄λ¦
6. μ€μκ° κ²°κ³Ό νμΈ
* * *
### π» λͺ
λ Ήμ€ μΈν°νμ΄μ€
#### λ‘컬 μ·¨μ½ μ ν리μΌμ΄μ
ν
μ€νΈ
λ‘컬 μ·¨μ½ μ±μ μμ±νκ³ ν
μ€νΈν©λλ€:
root@kitploit:~
# Terminal 1: Start vulnerable app
./scripts/setup-vulnerable-app.sh
# App will run on http://localhost:3000
# Terminal 2: Test it
./scripts/test-local.sh
# Execute custom commands
./scripts/test-local.sh "whoami"
./scripts/test-local.sh "pwd"
./scripts/test-local.sh "ls -la"
#### μ격 λμ ν
μ€νΈ
root@kitploit:~
# Basic scan
./scripts/test-remote.sh https://target.com
# With command execution
./scripts/test-remote.sh https://target.com "id"
#### λ€μ€ λμ μ€μΊ
root@kitploit:~
# Create targets file
cat > targets.txt << EOF
https://target1.com
https://target2.com
https://target3.com
EOF
# Scan all targets
./scripts/test-multiple.sh targets.txt
* * *
### π― κ³ κΈ: μλ Nuclei λͺ
λ Ήμ΄
**κΈ°λ³Έ μ·¨μ½μ νμ§:**
root@kitploit:~
nuclei -t templates/cve-2025-55182.yaml -u http://localhost:3000 -v
**μ¬μ©μ μ μ λͺ
λ Ήμ΄ μ€ν:**
root@kitploit:~
nuclei -t templates/cve-2025-55182-interactive.yaml \
-u http://localhost:3000 \
-var cmd="whoami" \
-v
**λ€μ€ λμ μ€μΊ:**
root@kitploit:~
nuclei -t templates/cve-2025-55182.yaml -l targets.txt -v
* * *
## π νλ‘μ νΈ κ΅¬μ‘°
root@kitploit:~
CVE-2025-55182-Scanner/
βββ README.md # μ£Όμ λ¬Έμ
βββ EXPLOIT_SCRIPT.md # λ
립 μ€νν μ€ν¬λ¦½νΈ κ°μ΄λ
βββ QUICKSTART.md # λΉ λ₯Έ μμ κ°μ΄λ
βββ SETUP_GUIDE.md # μμΈ μ€μ μ§μΉ¨
βββ LICENSE # MIT λΌμ΄μ μ€
β
βββ exploit-cve-2025-55182.sh # λ
립 μ€νν μ΅μ€νλ‘μ μ€ν¬λ¦½νΈ
β
βββ Dockerfile # Docker ꡬμ±
βββ docker-compose.yml # Docker Compose μ€μ
β
βββ templates/ # Nuclei ν
νλ¦Ώ
β βββ cve-2025-55182.yaml # νμ§ ν
νλ¦Ώ
β βββ cve-2025-55182-interactive.yaml # λνν RCE ν
νλ¦Ώ
β
βββ scripts/ # λμ°λ―Έ μ€ν¬λ¦½νΈ
β βββ setup-vulnerable-app.sh # λ‘컬 μ·¨μ½ μ± μ€μ
β βββ test-local.sh # λ‘컬 μΈμ€ν΄μ€ ν
μ€νΈ
β βββ test-remote.sh # μ격 λμ ν
μ€νΈ
β βββ test-multiple.sh # λ€μ€ λμ ν
μ€νΈ
β
βββ web-ui/ # μΉ μΈν°νμ΄μ€
β βββ server.js # Express μλ²
β βββ package.json # μ’
μμ±
β βββ public/
β βββ index.html # νλ‘ νΈμλ
β
βββ vulnerable-app/ # μ·¨μ½ ν
μ€νΈ μ± (μμ±λ¨)
β βββ Dockerfile # Docker ꡬμ±
β βββ ...
β
βββ docs/ # π λ¬Έμ
βββ TECHNICAL.md # β μμ ν μ·¨μ½μ κ°μ΄λ
β # - μλ λ°©μ (κΈ°μ΄λΆν° κ³ κΈκΉμ§)
β # - λ€μ΄μ΄κ·Έλ¨μ ν΅ν 곡격 νλ¦
β # - νμ΄λ‘λ λΆμ (λͺ¨λ λΌμΈ μ€λͺ
)
β # - νμ§ λ° μλ°©
β # - μ€μ μ¬λ‘
βββ REMEDIATION.md # μμ μ§μΉ¨
### π λ¬Έμ νμ΄λΌμ΄νΈ
**docs/TECHNICAL.md** β **κ°μ₯ ν¬κ΄μ μΈ λ¦¬μμ€**
* μ·¨μ½μ μ λν 100% μμ ν μ€λͺ
* μκ°μ λ€μ΄μ΄κ·Έλ¨ λ° μμλ
* λΌμΈλ³ νμ΄λ‘λ λΆμ
* κΈ°μ΄λΆν° μμ, μ¬μ μ§μ λΆνμ
* νμ΅, κ΅μ‘ λ° λ³΄κ³ μ μ΅μ
* * *
## π¬ κΈ°μ μΈλΆ μ¬ν
μ΄ μ·¨μ½μ μ React Server Componentsμ μμ νμ§ μμ μμ§λ ¬νμμ λΉλ‘―λ©λλ€. 곡격μλ λ€μμ μνν μ μμ΅λλ€:
1. HTTP POSTλ₯Ό ν΅ν΄ μ
μ± JSON νμ΄λ‘λ μ μ‘
2. JavaScriptμ νλ‘ν νμ
μ€μΌ μ
μ©
3. Node.js `child_process` λͺ¨λμ λν μ‘μΈμ€ νλ
4. μμ μμ€ν
λͺ
λ Ήμ΄ μ€ν
### π μμ ν κ΅μ‘ μλ£
**μ΄κ²μ΄ μ νν μ΄λ»κ² μλνλμ§ μ΄ν΄νκ³ μΆμΌμ κ°μ?**
π **Full Technical Breakdown - docs/TECHNICAL.md**
μ΄ ν¬κ΄μ μΈ κ°μ΄λλ λ€μμ ν¬ν¨ν©λλ€:
#### π μ΄λ³΄μμ©
* React ν΄λΌμ΄μΈνΈ vs μλ² μ»΄ν¬λνΈμ λν λͺ
νν μ€λͺ
* μ΄ μ·¨μ½μ μ΄ μλ² μΈ‘ Reactμλ§ μν₯μ λ―ΈμΉλ μ΄μ
* κ°λ¨ν λΉμ μ μκ°μ μμ
#### π 보μ μ λ¬Έκ°μ©
* μμ ν 곡격 λ²‘ν° λΆμ
* λΌμΈλ³ νμ΄λ‘λ λΆμ
* νμ§ μκ·Έλμ² λ° IoC
* μ μ¬ μ·¨μ½μ κ³Όμ λΉκ΅
#### π» κ°λ°μμ©
* μλ² μ‘μ
μ΄ λ΄λΆμ μΌλ‘ μλνλ λ°©μ
* νλ‘ν νμ
μ€μΌμ΄ μνν μ΄μ
* μμ ν μ½λ© κ΄ν
* μ½λ 리뷰 체ν¬λ¦¬μ€νΈ
#### π― λ°°μΈ λ΄μ©
root@kitploit:~
β
Why React Server Components run on the server (not browser)
β
How prototype pollution works in JavaScript
β
Step-by-step attack flow with visual diagrams
β
Every byte of the exploit payload explained
β
How attackers gain code execution from JSON
β
Real-world proof of concept examples
β
Detection methods and prevention strategies
**νμ΄ν μΈμ΄λ‘ μμ±λ¨** \- λ°μ¬ νμ νμ μμ! 'React κΈ°μ΄'λΆν° 'μμ ν μ΅μ€νλ‘μ'κΉμ§ ν λ¬Έμμμ λ€λ£Ήλλ€.
μ ν©ν λμ:
* π 보μ λ³΄κ³ μ λ° λ°ν μλ£
* π κ΅μ‘ μλ£ λ° μν¬μ
* π μν μΈν
리μ μ€ λΆμ
* π¨βπ» μ ν리μΌμ΄μ
μν μ΄ν΄
* * *
## π‘οΈ λμ
μ·¨μ½ν λ²μ μ μ€ν μ€μΈ κ²½μ°:
### μ¦μ μ‘°μΉ
1. **React μ
λ°μ΄νΈ** μ΅μ ν¨μΉ λ²μ (19.2.1+)μΌλ‘
2. **Next.js μ
λ°μ΄νΈ** μ΅μ λ²μ μΌλ‘
3. **μλ² λ‘κ·Έ κ²ν ** μ΅μ€νλ‘μ μλ νμΈ
### μΆκ° 보μ
* μ
λ ₯ μ ν¨μ± κ²μ¬ λ° μμ ꡬν
* μ
μ± ν¨ν΄ μ°¨λ¨μ μν WAF κ·μΉ λ°°ν¬
* λ€νΈμν¬ λΆν μ μ©
**μ 체 κ°μ΄λ:** docs/REMEDIATION.md \- μμ ν λμ λ¨κ³
* * *
## π μ°Έκ³ μλ£
### 곡μ κΆκ³
* React Security Advisory
* Facebook Security Advisory
* Next.js Security Advisory
* Vercel Changelog
* Assetnote React2Shell Scanner
### κ΅μ‘ 리μμ€
**πμμ ν κΈ°μ λΆμ** \- λΉμ¬μ ν¬κ΄μ μΈ κ°μ΄λ
* 첫 μ리λΆν° μ·¨μ½μ μ€λͺ
* μκ°μ 곡격 νλ¦ λ€μ΄μ΄κ·Έλ¨
* μμ ν νμ΄λ‘λ ν΄μ²΄
* νμ§ λ° μλ°© μ λ΅
* 보μ κ΅μ‘ λ° λ°νμ μ΅μ
**λΉμ¬μ κΈ°μ κ°μ΄λλ₯Ό μ½μ΄μΌ νλ μ΄μ ?**
* β
'μλ² μ»΄ν¬λνΈλ 무μμΈκ°?'λ‘ μμ
* β
κ³ κΈ μ΅μ€νλ‘μ κΈ°μ κΉμ§ λ°μ
* β
νμ΄λ‘λμ λͺ¨λ λΌμΈ μ€λͺ
* β
μ€μ μμ λ° PoC ν¬ν¨
* β
λͺ
ννκ³ μ κ·ΌνκΈ° μ¬μ΄ μΈμ΄λ‘ μμ±
* β
μ¬μ React μ§μ λΆνμ
**μ¬μ© λμ:** μ μΈκ³μ 보μ μ°κ΅¬μ, κ°λ°μ, μΉ¨ν¬ ν
μ€ν° λ° κ΅μ‘μ.
* * *
## π€ κΈ°μ¬
κΈ°μ¬λ₯Ό νμν©λλ€! κΈ°μ¬νλ €λ©΄:
1. μ μ₯μ ν¬ν¬
2. κΈ°λ₯ λΈλμΉ μμ± (`git checkout -b feature/improvement`)
3. λ³κ²½ μ¬ν μ»€λ° (`git commit -am 'Add new feature'`)
4. λΈλμΉμ νΈμ (`git push origin feature/improvement`)
5. ν 리νμ€νΈ μ΄κΈ°
* * *
## π λΌμ΄μ μ€
μ΄ νλ‘μ νΈλ **MIT λΌμ΄μ μ€** μ λ°λΌ λΌμ΄μ μ€κ° λΆμ¬λ©λλ€. μμΈν λ΄μ©μ LICENSE νμΌμ μ°Έμ‘°νμΈμ.
* * *
## π₯ μ μ
**StealthMoud**
* Twitter/X: @StealthMoud
* GitHub: @StealthMoud
* * *
## β κ°μ¬μ λ§
* **ProjectDiscovery** \- Nuclei μ€μΊλ νλ μμν¬ μ 곡
* **보μ μ°κ΅¬μ** \- μ΄ μ·¨μ½μ μ λ°κ²¬νκ³ μ±
μκ° μκ² κ³΅κ°ν λΆλ€
* **React λ° Next.js ν** \- μ μν λμ λ° ν¨μΉ κ°λ°
* * *
## π μ΄ μ μ₯μμ μ€ν νμ
μ΄ λκ΅¬κ° μ μ©νλ€λ©΄, μ§μμ μν΄ β λ³νλ₯Ό λλ¬μ£ΌμΈμ!
**Watch** μ΄ μ μ₯μλ₯Ό λ³΄κ³ μ
λ°μ΄νΈμ μλ‘μ΄ κΈ°λ₯μ νμΈνμΈμ.
* * *
## βοΈ μ±
μ μλ 곡κ°
μ΄ λꡬλ 보μ μ λ¬Έκ°κ° μ·¨μ½ν μμ€ν
μ μλ³νκ³ λμν μ μλλ‘ μΆμλμμ΅λλ€. νμ:
β
ν
μ€νΈ μ μ λͺ
μμ μΈ μλ©΄ νκ° νλ β
λ°κ²¬ μ¬νμ μν₯λ°λ λΉμ¬μμκ² μ±
μκ° μκ² λ³΄κ³ β
λͺ¨λ κ΄λ ¨ λ²λ₯ λ° κ·μ μ€μ β λ¬΄λ¨ μ‘μΈμ€μ μ΄ λꡬλ₯Ό μ¬μ©νμ§ λ§μΈμ β μ
μμ μΈ λͺ©μ μΌλ‘ μ΄ λꡬλ₯Ό μ¬μ©νμ§ λ§μΈμ
**κΈ°μ΅νμΈμ:** λ¬΄λ¨ μ»΄ν¨ν° μ‘μΈμ€λ λ²μ£μ
λλ€. μ±
μκ° μκ² ν
μ€νΈνμΈμ.