Due nuovi CVE recentemente divulgati — CVE-2025-55182 in React Server Components e CVE-2025-29927 nel middleware di Next.js — aprono una strada per l'esecuzione di codice remoto e il bypass dell'autenticazione negli stack JavaScript moderni. Una singola richiesta può innescare le falle; la sola configurazione non può fermarle. I team che si affidano a React Server Components o al middleware di Next.js devono trattare questi bug come urgenti e distribuire immediatamente le patch.
Perché il rumore nei log è fuorviante
Abbiamo estratto un mese di log edge da un sito Next.js in produzione. Il set conteneva 8.900 richieste contrassegnate come malevole. Quasi tutte fallivano al primo passaggio. L'URL più comune era /wp-admin/install.php, colpito 518 volte, nonostante il sito non utilizzi WordPress, non usi PHP e non abbia file WordPress.
Gli scanner automatizzati generano questo traffico. Inondano internet di tentativi di indovinare, alla ricerca di:
- Segreti e file di configurazione – 64% dei tentativi
- Pannelli e shell PHP – 22%
- Percorsi WordPress – 11%
- Strumenti per database – 1%
Un alto numero di richieste bloccate indica solo che non stai eseguendo il software che i bot si aspettano. Non garantisce che l'applicazione che stai eseguendo sia sicura.
Gli attacchi silenziosi a livello di framework
Quando un attaccante prende di mira un'app Next.js, il traffico sembra quello di normali richieste utente, utilizzando i meccanismi dello stesso framework contro di esso.
React2Shell (CVE-2025-55182)
Una falla nei React Server Components consente a un attaccante di iniettare un payload appositamente creato che il server valuta come codice. Il risultato è la piena esecuzione di codice remoto senza la necessità di bypassare un firewall o un filtro web-application. La vulnerabilità risiede all'interno del framework; l'unico rimedio è aggiornare a una versione che contenga la correzione.
Middleware Authorization Bypass (CVE-2025-29927)
Il middleware di Next.js può imporre controlli di sicurezza basati sugli header della richiesta. Questo CVE dimostra che un attaccante può fornire un particolare header interno e causare il salto completo di tali controlli da parte del middleware. Dall'esterno, la richiesta appare ordinaria, rendendo difficile il rilevamento.
Entrambi i bug dimostrano che il traffico più pericoloso può confondersi con il traffico quotidiano, eludendo gli allarmi che intercettano le rumorose sonde su WordPress.
Quali sono i rischi in gioco
- Gli sviluppatori che considerano gli aggiornamenti del framework come opzionali rischiano il controllo totale dei propri server.
- I team Operations che si affidano a configurazioni statiche per mettere in sicurezza uno stack non possono proteggersi da codice che viene eseguito all'interno del framework stesso.
Una checklist pratica per la difesa
- Igiene del deployment – Non includere segreti in file come
.env. Conservali in variabili d'ambiente fornite a runtime o in un sistema dedicato alla gestione dei segreti. - Superficie di attacco minima – Disattiva le funzionalità del framework che non utilizzi. Applica una Content-Security-Policy rigorosa che blocchi il caricamento di script non autorizzati.
- Patching rapido – Automatizza la pipeline di build in modo che una nuova versione del framework possa essere testata e distribuita entro poche ore dal rilascio. Considera gli aggiornamenti di sicurezza come una parte regolare del ciclo di rilascio, non come un pensiero secondario.
Cosa monitorare in seguito
- Iscriviti ai feed ufficiali degli avvisi di sicurezza per React, Next.js e qualsiasi altra libreria di runtime di cui fai affidamento.
- Integra scanner di vulnerabilità che comprendano i metadati dei pacchetti JavaScript, in modo che un nuovo CVE pubblicato attivi un avviso automatico.
- Crea una pipeline di deployment pronta al rollback; se una patch introduce regressioni, potrai tornare indietro rapidamente senza lasciare il sistema esposto.
La lezione è chiara: gli attacchi più rumorosi nei tuoi log sono spesso un diversivo. Il vero pericolo si nasconde nel framework di cui il tuo codice si fida. Mantieni lo stack snello, conserva i segreti in modo sicuro e tratta le patch come attività di routine, e trasformerai le minacce silenziose a livello di framework in rischi gestibili.
