Une vulnérabilité de sécurité critique récemment révélée dans le populaire framework React Next.js, suivie comme CVE-2025-29927, a fait des vagues dans la communauté des développeurs en raison de son potentiel contourner les mécanismes d'autorisation basés sur les intergiciels. Avec un Note CVSS de 9.1, cette vulnérabilité est classée comme critique, ce qui rend une attention et une action immédiates essentielles pour tous les développeurs utilisant les versions concernées de Next.js.
- Présentation de la vulnérabilité
- Résumé des vulnérabilités
- Qu'est-ce qui rend CVE-2025-29927 si dangereux ?
- Versions corrigées et action du développeur
- Guide de suppression et d'atténuation de la vulnérabilité CVE-2025-29927
- Étape 1 : Mise à niveau vers une version corrigée
- Étape 2 : Implémenter un filtrage d'en-tête temporaire (si vous ne pouvez pas appliquer de correctif)
- Exemple (serveur personnalisé Next.js – Express) :
- Exemple (Vercel Middleware – Edge Function Filter) :
- Étape 3 : Renforcer la logique d’autorisation
- Étape 4 : Tester le comportement exploitable
- Étape 5 : Surveiller et enregistrer les activités suspectes
- Conclusion
Présentation de la vulnérabilité
Découvert et divulgué publiquement par un chercheur en sécurité Rachid Allam (alias zhero surélevées que pour les essai à froid), cette faille cible la manière dont Next.js gère le x-middleware-subrequest entête— un mécanisme initialement conçu pour empêcher les boucles infinies de requêtes intergiciels. Malheureusement, dans certaines conditions, des acteurs malveillants peuvent manipuler cet en-tête à ignorer entièrement l'exécution du middleware, contournant efficacement les contrôles d'autorisation basés sur les cookies ou d'autres formes de contrôles implémentés dans les intergiciels.
La faille représente le plus grand risque pour les applications qui s'appuyer uniquement sur le middleware pour le contrôle d'accès, notamment ceux protégeant les routes sensibles comme les panneaux d'administration ou les API privilégiées. Dans de tels scénarios, les attaquants pourraient potentiellement accéder aux données ou fonctionnalités réservées aux utilisateurs authentifiés ou de haut niveau—sans autorisation appropriée.
Résumé des vulnérabilités
| Attribut | DÉTAILS |
|---|---|
| Nom de la menace | CVE-2025-29927 |
| Type de menace | Contournement de l'autorisation du middleware |
| Noms de détection | Aucun attribué ; surveillé via les bases de données CVE et les audits de code source |
| Score CVSS | 9.1 (Critique) |
| Cadre affecté | Next.js |
| Versions affectées | Versions antérieures à 12.3.5, 13.5.9, 14.2.25 et 15.2.3 |
| Symptômes d'exploitation | Accès non autorisé aux routes protégées, privilèges élevés sans connexion |
| Potentiel de dommages | Élevé – Accès privilégié, exposition des données, contrôle d'accès rompu |
| Méthode de distribution | Exploitation via des requêtes HTTP externes spécialement conçues |
| Exploits connus | Divulgué publiquement – potentiel d’exploitation massive |
| Niveau de danger | Critical |
| Rapporté par | Rachid Allam (zhero, essai à froid) |
| Courriels associés | N'est pas applicable |
Qu'est-ce qui rend CVE-2025-29927 si dangereux ?
La question clé ici est autorisation middleware uniquementDe nombreux développeurs Next.js utilisent des intergiciels comme solution légère pour vérifier les sessions utilisateur, les rôles ou d'autres jetons de sécurité avant d'autoriser l'accès à des pages spécifiques. Cependant, cette vulnérabilité permet clients malveillants pour injecter le x-middleware-subrequest entête dans les requêtes externes, en trompant Next.js en lui faisant croire que la requête a déjà été transmise par le middleware.
Cela ouvre la porte à l'accès non autorisé, en particulier dans les applications qui stockent des données utilisateur sensibles, permettent la gestion des comptes ou offrent des fonctionnalités d'administration sans couches de sécurité back-end supplémentaires.
Les chercheurs de JFrog ont souligné l’importance de sécurité en couches Dans les applications modernes, dépendre entièrement de l'autorisation du frontend ou du middleware peut avoir des conséquences désastreuses lorsqu'un tel contournement est disponible.
Versions corrigées et action du développeur
L'équipe de développement Next.js a déjà publié patchs résoudre ce problème dans les versions suivantes :
- 12.3.5
- 13.5.9
- 14.2.25
- 15.2.3
Il est fortement recommandé aux développeurs de mettre à niveau vers la version corrigée appropriée immédiatement. Pour ceux qui ne peuvent pas mettre à jour immédiatement, c'est fortement recommandé pour tout bloquer requêtes externes contenant le x-middleware-subrequest entête pour réduire l'exposition.
Guide de suppression et d'atténuation de la vulnérabilité CVE-2025-29927
Le CVE-2025-29927 Une vulnérabilité dans le framework Next.js permet aux attaquants de contourner l'autorisation basée sur le middleware en manipulant le x-middleware-subrequest en-tête. Pour protéger votre application, suivez les étapes ci-dessous pour supprimer la vulnérabilité surélevées que pour les renforcez votre posture de sécurité.
Étape 1 : Mise à niveau vers une version corrigée
Le le plus sûr et le plus efficace La meilleure façon de remédier à ce défaut est de mise à niveau de Next.js vers une version corrigée.
Objectifs de mise à niveau :
- 12.3.5
- 13.5.9
- 14.2.25
- 15.2.3
Comment mettre à niveau :
Ouvrez votre terminal et exécutez la commande appropriée pour votre projet :
bashCopierModifiernpm install next@12.3.5
# or for newer versions
npm install next@15.2.3
Ensuite, reconstruisez votre projet :
bashCopierModifiernpm run build
Étape 2 : Implémenter un filtrage d'en-tête temporaire (si vous ne pouvez pas appliquer de correctif)
Si vous êtes impossible de mettre à niveau immédiatement, mettre en œuvre un filtre côté serveur pour bloquer les requêtes contenant le x-middleware-subrequest en-tête provenant de sources non fiables.
Exemple (serveur personnalisé Next.js – Express) :
javascriptCopierModifierconst express = require('express');
const next = require('next');
const app = next({ dev: false });
const handle = app.getRequestHandler();
app.prepare().then(() => {
const server = express();
// Header check middleware
server.use((req, res, next) => {
if (req.headers['x-middleware-subrequest']) {
return res.status(403).send('Forbidden: Malicious header detected');
}
next();
});
server.all('*', (req, res) => {
return handle(req, res);
});
server.listen(3000, () => {
console.log('Server listening on port 3000');
});
});
Exemple (Vercel Middleware – Edge Function Filter) :
jsCopyEditimport { NextResponse } from 'next/server';
export function middleware(request) {
const headerValue = request.headers.get('x-middleware-subrequest');
if (headerValue) {
return new Response('Forbidden', { status: 403 });
}
return NextResponse.next();
}
Étape 3 : Renforcer la logique d’autorisation
Évitez de compter uniquement sur le middleware pour l'authentification ou le contrôle d'accès.
- Utilisez des contrôles côté serveur sur les itinéraires API et la logique au niveau de la page.
- Vérifiez les sessions utilisateur ou les jetons dans la logique de votre serveur (par exemple, à l'intérieur
getServerSidePropsou gestionnaires de routes API). - Implémentez le contrôle d’accès basé sur les rôles (RBAC) au niveau de la route ou du contrôleur, et pas seulement au niveau du middleware.
Étape 4 : Tester le comportement exploitable
Après correction ou atténuation :
- Simulez une demande falsifiée avec le
x-middleware-subrequesten-tête. - Tenter d'accéder à des itinéraires restreints ou à des panneaux d'administration.
- Vérifiez que la demande est refusée ou redirigée de manière appropriée.
Utilisez des outils tels que Postman, curl ou Burp Suite pour tester la manipulation des requêtes :
bashCopierModifiercurl -H "x-middleware-subrequest: 1" https://yourdomain.com/admin
Étape 5 : Surveiller et enregistrer les activités suspectes
- Configurez des règles WAF (Web Application Firewall) pour détecter les en-têtes suspects.
- Utilisez des outils de journalisation pour surveiller les demandes répétées contenant le
x-middleware-subrequesten-tête. - Enquêter sur les anomalies dans les journaux d’accès, en particulier pour les itinéraires d’administration ou restreints.
Conclusion
La divulgation de CVE-2025-29927 met en évidence les dangers de faire confiance au middleware comme seule couche d'autorisationLes détails techniques étant désormais publics, les acteurs malveillants sont susceptibles d'exploiter cette vulnérabilité si les développeurs tardent à appliquer les correctifs ou à mettre en œuvre des mesures d'atténuation efficaces. Si votre application est basée sur Next.js et utilise un middleware pour l'autorisation, votre les données utilisateur et les itinéraires protégés peuvent déjà être menacésMettez à jour maintenant, avant que des visiteurs non autorisés ne trouvent le moyen d’entrer.
