
Applicazione Next.js intenzionalmente vulnerabile che dimostra il bypass dell'autenticazione CVE-2025-29927 tramite elusione del middleware WAF. Progettata per ricerca sulla sicurezza, laboratori di penetration testing e demo di divulgazione responsabile con backend MySQL e autenticazione JWT.
Questa è un'applicazione Next.js vulnerabile che dimostra CVE-2025-29927, una falla di sicurezza identificata nelle applicazioni web che utilizzano Next.js con gestione impropria degli input o difetti di controllo degli accessi.
Il progetto utilizza un backend MySQL e autenticazione JWT ed è progettato esclusivamente per scopi educativi e di test — come per laboratori di penetration testing, demo di divulgazione responsabile e ricerca sulla sicurezza.
Le password per gli account di test in users.csv sono "123456" e la chiave segreta per l'autenticazione JWT "JWT_SECRET" è aggiunta al file ".env.local" ed è stata condivisa intenzionalmente in questo repository pubblico e non è un token JWT utilizzato in produzione. Questo semplifica la distribuzione e i test.
Puoi anche sostituire la chiave segreta per il JWT con una generata da te, ma il file .env deve esistere affinché l'autenticazione JWT funzioni.
⚠️ Disclaimer: Questo progetto è intenzionalmente vulnerabile. NON distribuirlo in ambienti di produzione. Utilizzalo solo in configurazioni isolate o controllate per scopi educativi.
Guarda la guida completa per la configurazione e la demo su YouTube su come configurare questo progetto:
▶️ [https://www.youtube.com/watch?v=Akb3R34QnM8&t=482s]
Guarda la demo completa su YouTube su come viene sfruttata la vulnerabilità: ▶️ []
git clone https://github.com/enochgitgamefied/NextJS-CVE-2025-29927.git
cd NextJS-CVE-2025-29927
npm install
Crea un database MySQL e aggiorna i dettagli di connessione in:
/database/index.js
La configurazione più semplice è usare i file csv condivisi in questo repo per creare le tabelle. Tutti gli account utente utilizzano la stessa password. La password è "123456". Guarda il video su YouTube per ottenere tutti i dettagli e le istruzioni passo passo.
Puoi anche usare qualcosa come l'esempio qui sotto. Esempio:
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'yourpassword',
database: 'cve_demo'
});
Poi importa lo schema da database/schema.sql o esegui il tuo script di configurazione.
npm run dev
Visita http://localhost:3000 per visualizzare l'app nel tuo browser.
Questa applicazione contiene middleware NextJS che funge da WAF (Web Application Firewall) e una versione vulnerabile di Next 13.4.9 che consente agli aggressori di sfruttare vulnerabilità relative a bypass dell'autenticazione, inclusione di file locali o controllo degli accessi improprio. L'obiettivo è aiutare i ricercatori a capire come questa CVE può essere sfruttata e come mitigarla.
Questo progetto è concesso in licenza secondo la Licenza MIT.