
Demo di CVE-2025-29927 per il corso di programmazione sicura
Questa è una demo di CVE-2025-29927, una vulnerabilità critica in Next.js che permetteva di bypassare il middleware tramite un particolare header.
L'header x-middleware-subrequest era stato progettato per prevenire loop infiniti del middleware. Ogni volta che la richiesta raggiunge il middleware, il valore middleware viene aggiunto a questo header, e se viene aggiunto 5 volte allora il middleware lascia passare la richiesta. Inviare una richiesta con il valore middleware:middleware:middleware:middleware:middleware permette di bypassare il middleware.
Dopo aver clonato il repository e costruito il progetto, esegui il server di sviluppo:
npm run dev
Accedi all'applicazione nel tuo browser utilizzando il link http://localhost:3000.
L'obiettivo di questa applicazione è raggiungere la pagina /cool. Il pulsante di invio porta a questa pagina, ma la richiesta viene intercettata dal middleware e reindirizzata a /uncool.
Ora possiamo inviare la stessa richiesta ma con l'header appositamente costruito, e il middleware ci permetterà di passare alla pagina /cool. Questo può essere fatto con gli strumenti di sviluppo del browser.
