Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-55182 | Kitploit
Strumenti/GitHubGitHub/tinashelorenzi/cve-2025-55182
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRilevamento IntrusioniApprendimento e FormazioneRed TeamingSviluppo PayloadLab e Pratica
GitHubtinashelorenzi/cve-2025-55182

CVE-2025-55182

Vedi Repository
8 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

React2Shell (CVE-2025-55182) - Prova di concetto

Un exploit proof-of-concept completo e una risorsa educativa per CVE-2025-55182, una vulnerabilità critica di esecuzione remota di codice che interessa i React Server Components con un punteggio CVSS di 10.0.

Python Version License CVSS

Dichiarazione di esclusione di responsabilità legale

SOLO PER SCOPI EDUCATIVI E DI TEST AUTORIZZATI

Questo strumento è fornito esclusivamente per scopi educativi e per test di sicurezza autorizzati. L'accesso non autorizzato ai sistemi informatici è illegale ai sensi di varie normative, tra cui il Computer Fraud and Abuse Act (CFAA) negli Stati Uniti e legislazioni simili in tutto il mondo.

Devi:

  • Utilizzare questo strumento solo su sistemi di tua proprietà o per i quali disponi di esplicita autorizzazione scritta al test
  • Rispettare tutte le leggi locali, statali e federali applicabili
  • Utilizzare questo strumento in modo responsabile ed etico

L'autore e i collaboratori:

  • Non sono responsabili di qualsiasi uso improprio o danno causato da questo strumento
  • Non approvano né incoraggiano l'accesso non autorizzato ai sistemi informatici
  • Forniscono questo strumento esclusivamente per scopi educativi e di sicurezza difensiva

Utilizzando questo strumento, dichiari di aver compreso e di accettare questi termini.

📋 Indice

  • Overview
  • Vulnerability Details
  • Affected Versions
  • Technical Analysis
  • Installation
  • Usage
  • Detection
  • Remediation
  • Lab Environment Setup
  • References
  • Contributing
  • Author

🎯 Panoramica

React2Shell è una vulnerabilità critica scoperta nel dicembre 2025 che interessa i React Server Components (RSC) e i framework che li implementano, in particolare Next.js. La vulnerabilità consente l'esecuzione remota di codice senza autenticazione tramite una singola richiesta HTTP appositamente predisposta.

Questo repository contiene:

  • ✅ Script di exploit automatico in Python
  • ✅ Analisi tecnica dettagliata
  • ✅ Regole di rilevamento (Snort, OSQuery)
  • ✅ Guida alla configurazione dell'ambiente di laboratorio
  • ✅ Documentazione completa

🔍 Dettagli della Vulnerabilità

Cosa rende critica questa vulnerabilità?

  1. Nessuna autenticazione richiesta - Sfruttabile da qualsiasi attaccante non autenticato
  2. Configurazioni predefinite vulnerabili - Le app Next.js standard create con create-next-app sono sfruttabili
  3. Elevata affidabilità - Tasso di successo dello sfruttamento vicino al 100%
  4. Ampia superficie d'attacco - Oltre 571.000 server pubblici che eseguono componenti React (dati Shodan)
  5. Impatto grave - Esecuzione remota completa di codice con i privilegi del processo Node.js

📦 Versioni Interessate

React Server Components

Versioni vulnerabili:

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

Versioni corrette:

  • React 19.0.1
  • React 19.1.2
  • React 19.2.1

Next.js

Versioni vulnerabili:

  • Tutte le versioni ≥14.3.0-canary.77
  • Tutte le release 15.x (pre-patch)
  • Tutte le release 16.x (pre-patch)

Versioni corrette:

  • Controlla le release di Next.js per le versioni aggiornate che incorporano le patch di React

Altri Framework Interessati

  • React Router (quando si utilizza la modalità RSC)
  • Waku
  • Redwood SDK
  • Vari framework abilitati per RSC

🔬 Analisi Tecnica

Causa principale

La vulnerabilità risiede nella funzione requireModule all'interno della logica di deserializzazione dei React Server Components:

root@kitploit:~
function requireModule(metadata) {  
  var moduleExports = __webpack_require__(metadata[0]);  
  return moduleExports[metadata[2]];  // VULNERABLE LINE - Prototype chain traversal
}

Il difetto consente agli attaccanti di attraversare la catena di prototipi di JavaScript tramite il protocollo React Flight, accedendo al costruttore Function attraverso proprietà come constructor.constructor, consentendo l'esecuzione di codice arbitrario.

Catena di sfruttamento

  1. Creazione di chunk fittizio - L'attaccante invia dati multipart form con un oggetto chunk appositamente modificato
  2. Inquinamento dei prototipi - Sfrutta __proto__ per creare una struttura auto-referenziale
  3. Abuso del gestore Blob - Attiva il gestore di deserializzazione Blob interno di React
  4. Accesso al costruttore Function - Percorre constructor.constructor per accedere a Function()
  5. Esecuzione di codice - Inietta JavaScript arbitrario tramite child_process.execSync()

Diagramma del flusso dell'attacco

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  Attacker sends multipart/form-data with Next-Action header │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Server deserializes payload via React Flight protocol      │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Fake chunk object with __proto__ pollution processed       │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Blob handler invokes _formData.get(_prefix + id)           │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Resolves to Function("malicious_code")                     │
└──────────────────────┬──────────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────────┐
│  Arbitrary code executed with Node.js process privileges    │
└─────────────────────────────────────────────────────────────┘

🚀 Installazione

Requisiti

  • Python 3.7 o superiore
  • Libreria requests

Configurazione

root@kitploit:~
# Clone the repository
git clone https://github.com/yourusername/react2shell-poc.git
cd react2shell-poc

# Install dependencies
pip install -r requirements.txt

# Make script executable (Linux/macOS)
chmod +x react2shell.py

Requirements.txt

root@kitploit:~
requests>=2.31.0
urllib3>=2.0.0

💻 Utilizzo

Utilizzo di base

root@kitploit:~
python3 react2shell.py

Sessione interattiva

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║           React2Shell (CVE-2025-55182) PoC                ║
║                 CVSS 10.0 - Critical RCE                  ║
║                                                           ║
║  Affected: React 19.0.0, 19.1.0, 19.1.1, 19.2.0          ║
║           Next.js ≥14.3.0-canary.77, 15.x, 16.x          ║
║                                                           ║
║  Cerberus Secure - Lab Use Only                          ║
╚═══════════════════════════════════════════════════════════╝

[?] Enter target information:
    Host (e.g., localhost or 192.168.1.100): localhost
    Port (e.g., 3000): 3000

[React2Shell]> id
[*] Target: http://localhost:3000/
[*] Command: id
[*] Building exploit payload...
[*] Sending exploit request...
[+] Response Status Code: 200
[*] Parsing response...

╔═══════════════════════════════════════════════════════════╗
║                    COMMAND OUTPUT                         ║
╚═══════════════════════════════════════════════════════════╝
uid=1000(node) gid=1000(node) groups=1000(node)

[React2Shell]> whoami
[React2Shell]> pwd
[React2Shell]> ls -la
[React2Shell]> exit

Comandi di esempio

root@kitploit:~
# System reconnaissance
[React2Shell]> id
[React2Shell]> whoami
[React2Shell]> uname -a
[React2Shell]> cat /etc/os-release

# File system exploration
[React2Shell]> pwd
[React2Shell]> ls -la
[React2Shell]> cat package.json

# Environment variables (often contain secrets)
[React2Shell]> printenv
[React2Shell]> echo $PATH

# Network information
[React2Shell]> ifconfig
[React2Shell]> netstat -tulpn

Comandi disponibili

ComandoDescrizione
<qualsiasi comando shell>Esegue il comando sul target
helpMostra il messaggio di aiuto
exit / /

🛡️ Rilevamento

Rilevamento a livello di rete (Snort v3)

Distribuisci questa regola Snort per rilevare i tentativi di sfruttamento:

root@kitploit:~
alert http any any -> $LAN_NETWORK any (
    msg:"Potential Next.js React2Shell / CVE-2025-55182 attempt";
    flow:to_server,established;
    content:"Next-Action"; http_header; nocase;
    content:"multipart/form-data"; http_header; nocase;
    pcre:"/Content-Disposition:\s*form-data;\s*name=\"0\"/s";
    pcre:"/\"status\"\s*:\s*\"resolved_model\"/s";
    pcre:"/\"then\"\s*:\s*\"\$1:__proto__:then\"/s";
    classtype:web-application-attack;
    sid:6655001;
    rev:1;
)

Logica di rilevamento:

  • Monitora l'header Next-Action (specifico di RSC)
  • Rileva payload multipart/form-data
  • Identifica i pattern specifici dell'exploit: name="0", status: "resolved_model", then: "$1:__proto__:then"

Rilevamento sugli endpoint (OSQuery)

Usa questa regola OSQuery per cercare versioni vulnerabili dei pacchetti:

root@kitploit:~
{
  "queries": {
    "detect_react2shell_vulnerable_packages": {
      "query": "SELECT name, version, path FROM npm_packages WHERE (name='react-server-dom-parcel' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-turbopack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0')) OR (name='react-server-dom-webpack' AND (version='19.0.0' OR (version >= '19.1.0' AND version < '19.1.2') OR version='19.2.0'));",
      "interval": 3600,
      "description": "Detects vulnerable versions of React Server Components packages affected by CVE-2025-55182",
      "platform": "linux,windows,macos",
      "version": "1.0"
    }
  }
}

Vantaggi:

  • Scansiona gli endpoint alla ricerca di pacchetti vulnerabili
  • Funziona in ambienti di sviluppo, staging e produzione
  • Può essere integrato nelle pipeline CI/CD
  • Fornisce un avviso tempestivo prima della distribuzione

Indicatori di analisi dei log

Cerca questi pattern nei log della tua applicazione:

root@kitploit:~
- HTTP POST requests with "Next-Action" header
- Unusual multipart/form-data requests to application root
- Error messages containing "NEXT_REDIRECT" with unexpected digest values
- Spike in 500 errors with React-related stack traces
- Child process spawning from Node.js (execSync, spawn, exec)

🔧 Rimedio

Azioni immediate

1. Aggiornare i pacchetti vulnerabili

root@kitploit:~
# Check current versions
npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

# Update React to patched version
npm install [email protected] [email protected]

# Update Next.js to latest patched version
npm install next@latest

# Verify updates
npm list react react-dom next

2. Verificare la ricostruzione dell'applicazione

root@kitploit:~
# Clear cache and rebuild
rm -rf .next node_modules package-lock.json
npm install
npm run build

3. Distribuire le applicazioni aggiornate

  • Sviluppo: Eseguire test approfonditi nell'ambiente di staging
  • Staging: Convalidare tutte le funzionalità prima della produzione
  • Produzione: Distribuire con un piano di rollback appropriato

Misure di Sicurezza a Lungo Termine

1. Implementare le regole del Web Application Firewall (WAF)

Blocca i pattern sospetti:

root@kitploit:~
- Requests with "Next-Action" header from untrusted sources
- Multipart form data with suspicious JSON structures
- Requests matching exploit signature patterns

2. Segmentazione della rete

  • Isolare le applicazioni React in zone di rete separate
  • Implementare un rigoroso filtraggio del traffico in uscita
  • Monitorare e generare avvisi su connessioni in uscita insolite

3. Protezione automatica dell'applicazione in runtime (RASP)

  • Distribuire soluzioni RASP per rilevare e bloccare i tentativi di sfruttamento
  • Monitorare la creazione sospetta di processi figlio
  • Generare avvisi su pattern inattesi di esecuzione di codice

4. Scansione di sicurezza nella CI/CD

root@kitploit:~
# Example GitHub Actions workflow
name: Security Scan
on: [push, pull_request]

jobs:
  dependency-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Check for vulnerable React packages
        run: |
          npm audit --audit-level=critical
          npm list react-server-dom-webpack react-server-dom-parcel react-server-dom-turbopack

5. Monitoraggio e avvisi

Configura avvisi per:

  • Distribuzione di versioni vulnerabili dei pacchetti
  • Pattern di tentativi di sfruttamento nei log
  • Creazione inattesa di processi figlio
  • Connessioni di rete verso destinazioni sospette

🧪 Configurazione dell'Ambiente di Laboratorio

Opzione 1: Applicazione Next.js vulnerabile

root@kitploit:~
# Create a new Next.js app with vulnerable version
npx [email protected] vulnerable-app
cd vulnerable-app

# Install vulnerable React version
npm install [email protected] [email protected]

# Start the development server
npm run dev

Opzione 2: Ambiente Docker

Crea un Dockerfile:

root@kitploit:~
FROM node:18-alpine

WORKDIR /app

# Create a basic Next.js app
RUN npx [email protected] vulnerable-app --typescript --tailwind --app --no-src-dir

WORKDIR /app/vulnerable-app

# Install vulnerable React versions
RUN npm install [email protected] [email protected]

EXPOSE 3000

CMD ["npm", "run", "dev"]

Compila ed esegui:

root@kitploit:~
docker build -t react2shell-lab .
docker run -p 3000:3000 react2shell-lab

Opzione 3: Docker Compose

Crea docker-compose.yml:

root@kitploit:~
version: '3.8'
services:
  vulnerable-app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
    volumes:
      - ./app:/app/vulnerable-app

Esegui:

root@kitploit:~
docker-compose up -d

Verificare la vulnerabilità

Testa con curl:

root@kitploit:~
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit_payload.txt

📚 Riferimenti

Advisory di sicurezza ufficiali

  • Advisory di sicurezza di React - CVE-2025-55182
  • Advisory di sicurezza di Next.js
  • NVD - CVE-2025-55182

Ricerca e analisi

  • PoC originale di maple3142
  • Ricerca sulla sicurezza di Wiz - Analisi di React2Shell
  • Ricerca sulla sicurezza di Assetnote

Rilevamento e mitigazione

  • Documentazione di Snort
  • Documentazione di OSQuery
  • Documentazione sui React Server Components

Vulnerabilità correlate

  • Log4Shell (CVE-2021-44228) - RCE simile tramite deserializzazione
  • Spring4Shell (CVE-2022-22965) - RCE a livello di framework

🤝 Contributi

I contributi sono benvenuti! Segui queste linee guida:

  1. Fai il fork del repository
  2. Crea un branch per la funzionalità (git checkout -b feature/improvement)
  3. Esegui il commit delle modifiche (git commit -am 'Add new detection method')
  4. Esegui il push sul branch (git push origin feature/improvement)
  5. Crea una Pull Request

Aree per i contributi

  • Regole di rilevamento aggiuntive (Suricata, Zeek, ecc.)
  • Integrazione con framework di sicurezza (MISP, TheHive, ecc.)
  • Varianti di payload migliorate
  • Analisi dell'output migliorata
  • Documentazione e traduzioni aggiuntive

📝 Licenza

Questo progetto è rilasciato sotto la licenza MIT - consulta il file LICENSE per i dettagli.

👤 Autore

Tinashe

  • Ruolo: Architetto di soluzioni di cybersecurity
  • Organizzazione: Cerberus Secure / iConnect SA
  • Località: Johannesburg, Sudafrica
  • LinkedIn: https://www.linkedin.com/in/tinashe-matanda/
  • GitHub: @tinashelorenzi

Informazioni su Cerberus Secure

Cerberus Secure è la divisione di cybersecurity di iConnect SA, specializzata in:

  • Mitigazione di attacchi DDoS e sicurezza di rete
  • Conformità GRC (POPIA, ECT, PCI-DSS, HPCSA)
  • Architettura di sicurezza e progettazione di soluzioni
  • Gestione degli incidenti e threat intelligence
  • Sviluppo di SIEM personalizzati (piattaforma Olympus)

🙏 Riconoscimenti

  • maple3142 - Ricerca originale del proof-of-concept
  • Wiz Security Research - Analisi completa della vulnerabilità
  • Assetnote - Tecniche di sfruttamento avanzate
  • React Team - Risposta rapida e sviluppo delle patch
  • Next.js Team - Implementazione della mitigazione a livello di framework

⚖️ Divulgazione responsabile

Questa vulnerabilità è stata divulgata in modo responsabile dai ricercatori di sicurezza al team di React. Questo PoC viene rilasciato dopo:

  • La messa a disposizione delle patch ufficiali
  • Un tempo sufficiente per consentire alle organizzazioni di aggiornare i propri sistemi
  • La divulgazione pubblica da parte del team di sicurezza di React

Cronologia:

  • Dicembre 2025: Vulnerabilità scoperta
  • Dicembre 2025: Divulgazione coordinata al team di React
  • Dicembre 2025: Rilasciate le patch (19.0.1, 19.1.2, 19.2.1)
  • Dicembre 2025: Divulgazione pubblica e rilascio del PoC

Ricorda: usa questo strumento in modo responsabile e solo su sistemi su cui sei autorizzato a effettuare test.

Per domande, dubbi o problemi di sicurezza relativi a questo repository, apri una issue o contatta direttamente il manutentore.

Scarica lo strumento
CampoDettagli
CVE IDCVE-2025-55182
Punteggio CVSS10.0 (Critico)
Vettore di attaccoRete
Complessità dell'attaccoBassa
Privilegi richiestiNessuno
Interazione dell'utenteNessuna
ImpattoCompromissione completa del sistema (RCE)
Data di divulgazioneDicembre 2025
quit
q
Esce dallo strumento