
Vulnérabilité critique dans Next.js : Contournement de l'authentification du middleware
Ce dépôt est fourni strictement à des fins éducatives uniquement. Je n'ai pas découvert cette vulnérabilité - il s'agit d'une démonstration et d'une explication d'un problème de sécurité divulgué publiquement. Utiliser ces connaissances pour exploiter des systèmes vulnérables sans autorisation est illégal et contraire à l'éthique.
Si vous utilisez Next.js pour vos applications en production, arrêtez tout et vérifiez votre numéro de version. Il existe une grave vulnérabilité du middleware qui pourrait laisser votre système d'authentification complètement ouvert.
Cette vulnérabilité critique a été divulguée et corrigée de manière responsable, je partage donc cette démonstration éducative pour aider les développeurs à comprendre le problème et à protéger leurs systèmes.
Le problème réside dans la façon dont Next.js gère le en-tête HTTP interne x-middleware-subrequest. Cet en-tête a été conçu pour empêcher la récursion du middleware, mais les attaquants peuvent le manipuler pour contourner complètement l'exécution du middleware.
Pensez à ce que cela signifie - toute sécurité basée sur le middleware est potentiellement inefficace :
Des rapports font état de l'utilisation de cette vulnérabilité dans la nature pour accéder à des panneaux d'administration, des données utilisateur, et même des informations financières. Certaines organisations ont vu leurs données sensibles exposées sans même le savoir.
Ce dépôt inclut :
# Strips the problematic header
proxy_set_header x-middleware-subrequest "";
# Does the same thing for Apache users
RequestHeader unset x-middleware-subrequest
// Quick middleware fix until you can properly update
app.use((req, res, next) => {
delete req.headers['x-middleware-subrequest'];
next();
});
Cette vulnérabilité renforce d'importants principes de sécurité :
Consultez ces ressources pour créer des applications Next.js plus sécurisées :
Ce dépôt fournit une explication technique et une démonstration de CVE-2025-29927 à des fins éducatives uniquement. Toutes les informations sont basées sur des détails divulgués publiquement qui ont été correctement corrigés. Si vous découvrez des vulnérabilités de sécurité dans un logiciel, suivez toujours les pratiques de divulgation responsable :
Cette vulnérabilité montre comment même des frameworks bien conçus peuvent présenter des failles de sécurité critiques. Restez vigilants et faites de la mise à jour des dépendances une partie de votre flux de travail régulier.
N'hésitez pas à me contacter si vous avez des questions ou si vous avez besoin d'aide pour mettre en œuvre l'une de ces corrections !