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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-29927 — Analisi approfondita e PoC per CVE-2025-29927, un bypass dell'autorizzazione middleware di Next.js tramite l'header x-middleware-subrequest. Include template Nuclei e uno script di scansione di massa per i test. | Kitploit
Strumenti/GitHubGitHub/iteride/cve-2025-29927
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingPaper e RicercaApprendimento e Formazione
GitHubiteride/cve-2025-29927

CVE-2025-29927

Analisi approfondita e PoC per CVE-2025-29927, un bypass dell'autorizzazione middleware di Next.js tramite l'header x-middleware-subrequest. Include template Nuclei e uno script di scansione di massa per i test.

Vedi Repository
181 anno 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-29927

Introduzione

Questo documento presenta un'analisi della vulnerabilità CVE-2025-29927, che riguarda il meccanismo Middleware nel framework Next.js.
Next.js è un popolare framework open-source di Vercel per lo sviluppo di applicazioni basate su React. Supporta il rendering lato server, la generazione statica e un flessibile sistema di middleware, utilizzato per routing, reindirizzamenti, header di sicurezza e controllo degli accessi.

Nel marzo 2025 è stata identificata una vulnerabilità critica CVE-2025-29927, legata alla gestione dell'header interno delle sotto-richieste.
Il problema consiste nella possibilità di aggirare i controlli di autorizzazione nelle applicazioni in cui il controllo degli accessi è implementato proprio nel middleware, inserendo un valore speciale nell'header HTTP x-middleware-subrequest. Se la sicurezza è affidata solo al middleware, un attaccante può ottenere accesso a rotte o dati protetti.

Versioni di Next.js interessate e correzioni (secondo fonti pubbliche e materiali ufficiali):

  • 11.1.4 ≤ versione < 12.3.5
  • 13.0.0 ≤ versione < 13.5.9
  • 14.0.0 ≤ versione < 14.2.25
  • 15.0.0 ≤ versione < 15.2.3

Le correzioni sono disponibili nelle release 12.3.5 / 13.5.9 / 14.2.25 / 15.2.3.

Next.js è ampiamente utilizzato in produzione; una vulnerabilità che colpisce il layer middleware (spesso usato per autenticazione/autorizzazione e policy di sicurezza) comporta un elevato rischio pratico.


Obiettivo del report

Analizzare passo dopo passo la vulnerabilità e documentare l'intero ciclo di ricerca:

Raccolta e strutturazione dei materiali.
Sistematizzare le fonti pubbliche relative a CVE-2025-29927; esporre la natura del difetto, le condizioni di attivazione e le versioni/patch confermati.

Determinazione delle CPE e delle condizioni di configurazione.
Fornire un elenco di CPE/versioni e descrivere le configurazioni in cui la vulnerabilità è riproducibile (ad esempio, deployment self-hosted e autorizzazione a livello di middleware).

Dimostrazione sicura.
Preparare una demo riproducibile in un ambiente di test (senza azioni distruttive), che confermi l'aggiramento del middleware nelle versioni vulnerabili.

Metodologie di verifica su larga scala.
Descrivere e implementare tre approcci sicuri:

  • nuclei (modalità attiva con impatto minimizzato),
  • nuclei (modalità passiva basata su versioni/indicatori indiretti),
  • script personalizzato in Python/Go (verifica attiva multithread su host di test).

Essenza della vulnerabilità

middleware

  • Causa principale. In Next.js, l'header interno x-middleware-subrequest viene utilizzato per tracciare le sotto-richieste interne e prevenire la ricorsione nel middleware. Nei rami vulnerabili, i client esterni possono inserire questo header con un valore «atteso» e il runtime salta l'esecuzione del middleware, inoltrando la richiesta direttamente all'handler della rotta.

  • Ruolo dell'header. L'header x-middleware-subrequest era stato originariamente concepito come indicatore interno del fatto che la richiesta HTTP corrente fosse stata avviata dal framework stesso come sotto-richiesta intermedia, e non arrivata direttamente dall'utente.
    Serve per il corretto funzionamento dei meccanismi interni di Next.js: oltre al routing, questo flag aiuta a evitare la ricorsione infinita, «marcando» ogni layer intermedio invocato.
    Ma è proprio questa logica a creare un involontario buco nella protezione: un client che aggiunge autonomamente tale header può indurre il sistema a trattare la propria richiesta come interna e quindi aggirare i controlli di autorizzazione.

  • Evoluzione della logica.

    • Nelle versioni precedenti, l'header viene interpretato come un elenco di valori separati da due punti e il meccanismo lo confronta con il nome/percorso del middleware attivo.
    • Nei rami più recenti è stata aggiunta una protezione contro la ricorsione infinita sotto forma di contatore di profondità; al raggiungimento della soglia (default 5), anche il middleware viene saltato. Questo meccanismo può essere ingannato se l'header viene formato «come se» la catena di sotto-richieste avesse già esaurito il limite.

Impatto

  • Riservatezza e integrità. Accesso non autorizzato a pagine o API protette quando il controllo degli accessi è implementato solo a livello di middleware; possibile modifica dei dati tramite endpoint protetti.
  • Disponibilità. Effetti collaterali come il cache poisoning possono causare una memorizzazione nella cache errata e un degrado della disponibilità in alcune configurazioni.

CPE e condizioni di configurazione

CPE ufficiali (CPE 2.3)

Le attuali registrazioni NVD indicano il prodotto Vercel Next.js con software target node.js. Per i rami vulnerabili si applicano le seguenti configurazioni (gli intervalli di versione sono definiti a livello di configurazioni CPE in NVD):

CPE URIIntervallo di versioni vulnerabili
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*11.1.4 ≤ v < 12.3.5
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*13.0.0 ≤ v < 13.5.9
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*14.0.0 ≤ v < 14.2.25
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*15.0.0 ≤ v < 15.2.3

Nota: nella descrizione della CVE viene inoltre indicato che, in generale, «dalla 11.1.4 fino a 12.3.5 / 13.5.9 / 14.2.25 / 15.2.3» la vulnerabilità è riproducibile al verificarsi delle condizioni seguenti.

Condizioni di rilevanza in ambiente di produzione

  • Il controllo degli accessi (autenticazione/autorizzazione) è implementato nel middleware e non è duplicato negli handler/backend.
  • Deployment self-hosted (ad esempio, next start, build con output: 'standalone') o qualsiasi ambiente in cui il middleware viene eseguito sulle richieste in ingresso senza filtraggio perimetrale degli header interni.
  • Assenza di sistemi esterni che scartino le richieste degli utenti con x-middleware-subrequest (ad esempio, regole WAF).

Meccanismo interno di x-middleware-subrequest

Per evitare una ricorsione infinita del codice intermedio, il runtime genera e legge un header interno:

  1. Il valore dell'header viene interpretato come una stringa con elementi separati da due punti : — si ottiene un array di «sotto-richieste».
  2. Successivamente il runtime verifica:
    • se il nome/percorso del middleware corrente è presente in questo array (nei rami precedenti ciò portava a un salto immediato tramite NextResponse.next()),
    • oppure se è stata raggiunta la profondità massima di ricorsione (nei rami più recenti viene applicato un limite, di default 5), e in tal caso anche il middleware viene saltato.
  3. Per proteggersi dalla contraffazione, nelle patch è stato aggiunto un identificativo di sotto-richiesta separato (x-middleware-subrequest-id), associato alla sessione corrente del processo; se non corrisponde, l'x-middleware-subrequest in ingresso viene cancellato lato server.

Metodo di sfruttamento

Un attaccante invia una richiesta HTTP all'applicazione Next.js target, aggiungendo l'header interno x-middleware-subrequest.
Nel valore viene indicato il percorso del file middleware, ad esempio pages/_middleware, middleware o src/middleware.
Il valore necessario dipende dalla versione di Next.js utilizzata e dalla struttura del progetto.

Quando tale richiesta raggiunge l'applicazione, la logica interna del framework la considera una sotto-richiesta interna e presuppone che il layer intermedio sia già stato eseguito.
Di conseguenza, i controlli di autenticazione e autorizzazione che normalmente avvengono nel middleware vengono di fatto saltati.


PoC / Exploit

Scarica lo strumento