Next.js-Middleware lässt sich umgehen (CVE-2025-29927)
Prüfregel · RSC-SEC-154
- Sicherheit
- Schweregrad: Hoch
- CWE-285
- OWASP A06-2021
Kombiniert die installierte Next.js-Version aus der Lock-Datei mit dem Kontext im Repo: Liegt eine middleware.ts mit Anmeldung vor, und wird die App selbst betrieben (Docker, standalone-Build, Fly, Render, Railway) oder auf Vercel/Netlify?
Warum das zählt
Bei CVE-2025-29927 genügt ein einzelner Request-Header, damit Next.js die Middleware überspringt. Wer die Anmeldung dort prüft — das Standardmuster für Supabase, Auth.js und Clerk —, hat damit Seiten, die ohne Login erreichbar sind.
Die Version allein sagt aber wenig: Auf Vercel und Netlify kam der Header nie bei der App an, und eine Middleware ohne Anmeldung hat nichts zu umgehen. Deshalb bewertet die Regel Version, Middleware und Betrieb zusammen und nennt alle drei im Nachweis.
So prüft ihr es selbst: Die Next.js-Version steht in der Lock-Datei; ob die Middleware die Anmeldung trägt, zeigt middleware.ts. Wird die App selbst betrieben, hilft bis zum Update eine Proxy-Regel, die den Header verwirft.
Prüfstufe
- Repo-Zugang (Deep-Scan)
So behebt ihr es
Next.js auf 12.3.5, 13.5.9, 14.2.25 bzw. 15.2.3 oder neuer heben; bis dahin den Header `x-middleware-subrequest` am Proxy verwerfen und die Anmeldung zusätzlich in den Seiten prüfen.