CVE-2025-55182 e CVE-2025-66478: Rilevamento ad Alta Fedeltà per RSC/Next.js RCE
Detection stack
- AIDR
- Alert
- ETL
- Query
Riepilogo
Una falla di esecuzione di codice remoto interessa le applicazioni Next.js che utilizzano i React Server Components. Il problema può essere attivato senza alcun accesso precedente inviando una richiesta HTTP multipart specificamente creata. Sebbene esistano vari exploit pubblici proof-of-concept, molti sono inaffidabili o errati. L’articolo introduce una tecnica di rilevamento ad alta fedeltà che si basa su una caratteristica risposta di errore del server.
Indagine
I ricercatori hanno esaminato la logica di parsing del React Server Component e hanno scoperto che un riferimento a una proprietà delimitata da due punti può generare un errore 500 quando l’oggetto target è mancante. Hanno quindi creato un payload multipart che attiva costantemente questa condizione e hanno confermato un modello di risposta ripetibile. La regola di rilevamento proposta segnala risposte HTTP 500 che contengono il distintivo E{"digest" frammento nel corpo.
Mitigazione
I passaggi di mitigazione includono l’aggiornamento delle versioni interessate di Next.js a quelle che incorporano ulteriori misure di sicurezza attorno alla notazione dei due punti. Le organizzazioni dovrebbero implementare regole WAF per bloccare la struttura multipart dannosa e garantire che tutte le richieste in arrivo che toccano i React Server Components siano convalidate e sanitizzate.
Risposta
I team di sicurezza dovrebbero scansionare le applicazioni web esposte alla firma richiesta-risposta descritta e dare priorità alle correzioni per le istanze vulnerabili di Next.js. Se si sospetta un’esploitazione, isolare il server interessato, conservare e rivedere i log per le prove di esecuzione del codice e applicare le patch pertinenti senza indugi.
Flusso di Attacco
Stiamo ancora aggiornando questa parte. Iscriviti per ricevere notifiche
AvvisamiRilevamenti
Possibile Attività di Comando e Controllo tramite Dominio di Software di Accesso Remoto Comunicazione…
Visualizza
Possibile CVE-2025-55182 (Tentativo di sfruttamento RCE non autenticato nei React Server Components) (tramite proxy)
Visualizza
Possibile CVE-2025-55182 (Tentativo di sfruttamento RCE non autenticato nei React Server Components) (tramite webserver)
Visualizza
Esecuzione della Simulazione
Prerequisito: Il Controllo Preliminare di Telemetria e Baseline deve essere passato.
Ragionamento: Questa sezione dettaglia l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrativa DEVONO riflettere direttamente i TTP identificati e mirare a generare esattamente la telemetria prevista dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.
-
-
Narrativa dell’Attacco e Comandi:
L’attaccante, avendo identificato che il target esegue una versione vulnerabile di Next.js, crea una richiesta multipart dannosa che imita un flusso di caricamento di asset legittimo. Impostando ilUser-AgentaAssetnote/1.0.0e iniettando gli header interni di Next.jsNext-Action: xeX-Nextjs-Request-Id: b5dce965, il payload attiva il componente server-side che deserializza dati non attendibili, causando un’eccezione a runtime. Il server risponde con HTTP 500 e include il digest serializzato (E{"digest), che la regola di rilevamento osserva. -
Script di Test di Regressione:
#!/usr/bin/env bash # # Simulazione di exploit per la regola di rilevamento RCE di Next.js (T1595.002) # Genera lo schema di pacchetti esatto che la regola Sigma si aspetta. # TARGET="http://127.0.0.1" ENDPOINT="/" USER_AGENT="Assetnote/1.0.0" BOUNDARY="----WebKitFormBoundary$(date +%s)" # Corpo multipart minimale; il contenuto è irrilevante per il rilevamento. read -r -d '' PAYLOAD <Esegui lo script su una macchina che può raggiungere il server web target. Lo stato HTTP previsto è 500 e il log degli errori del server conterrà la stringa
E{"digest.
-
-
Comandi di Pulizia:# Nessuna modifica persistente sul target; basta rimuovere eventuali file temporanei localmente rm -f /tmp/exploit_payload.tmp 2>/dev/null || true