Détection et atténuation d'une vulnérabilité de contournement d'autorisation dans Next.js
Synthèse
Le 21 mars 2025, une nouvelle vulnérabilité critique de contournement d'autorisation dans Next.js, qui a obtenu un score CVSS de 9,1, a été rendue publique et le code CVE‑2025‑29927 lui a été attribué. Cette vulnérabilité permet aux attaquants de contourner les contrôles d'authentification et d'autorisation en exploitant une faille dans la gestion du middleware de l'infrastructure, ce qui laisse la porte ouverte aux accès non autorisés.
La vulnérabilité peut être exploitée sans authentification, ce qui permet un accès non autorisé aux routes protégées.
Le groupe Security Intelligence (SIG) d'Akamai a constaté des tentatives initiales d'exploitation visant à détecter cette vulnérabilité sur des serveurs potentiellement concernés.
Dans cet article de blog, les chercheurs d'Akamai fournissent des informations détaillées sur la vulnérabilité, les techniques d'exploitation et les stratégies de détection.
Une règle rapide Akamai Adaptive Security Engine fournit automatiquement une protection aux clients d'Akamai App & API Protector.
Qu'est-ce que la CVE-2025-29927 ?
La CVE‑2025‑29927 est une vulnérabilité de contournement d'autorisation dans Next.js, une infrastructure React open source largement utilisée pour réduire les temps de chargement des sites Web et augmenter la valeur SEO. La vulnérabilité a été rendue publique le 21 mars 2025 et a reçu une note CVSS critique de 9,1. Si elle est exploitée, un attaquant peut parvenir à contourner les contrôles de sécurité basés sur le middleware en usurpant un en-tête destiné uniquement à un usage interne.
Next.js utilise les en-têtes pour éviter les boucles infinies lors du traitement des requêtes, mais sa valeur prévisible, basée sur le chemin d'accès au fichier middleware, peut être facilement imitée par un attaquant. En incluant la valeur d'en-tête correcte dans une requête HTTP, un attaquant peut, dans certains cas, inciter l'application à ignorer les contrôles d'authentification et d'autorisation et à accéder aux ressources protégées.
Informations sur cette vulnérabilité
Next.js utilise le middleware pour traiter les requêtes HTTP entrantes avant qu'elles n'atteignent la logique d'application principale. Le middleware effectue généralement des tâches importantes telles que l'authentification, l'autorisation et la définition d'en-têtes de sécurité. La structure utilise un en-tête interne appelé « x‑middleware‑subrequest », qui est employé pour gérer ces processus ainsi que les flux de demandes internes, et éviter des problèmes tels que la récurrence infinie lors du traitement des requêtes.
Le problème fondamental réside dans la validation abusive de l'en-tête « x‑middleware‑subrequest ». Cet en-tête est destiné à un usage interne uniquement, mais sa valeur est prévisible, car elle est généralement fondée sur l'emplacement ou le nom du fichier middleware. Par conséquent, un attaquant peut créer une simple requête qui imite cet en-tête de requête, afin de duper le système pour l'inciter à traiter la requête comme une requête interne et à contourner les contrôles stratégiques.
Lorsque le middleware est contourné, l'application n'exécute pas ses mécanismes de sécurité habituels (tels que la vérification de l'identité ou du rôle), ce qui laisse le champ ouvert à un potentiel accès non autorisé à des parties sensibles ou restreintes de l'application. Lorsque toutes les conditions sont réunies, cette vulnérabilité est particulièrement dangereuse, car elle peut être exploitée sans authentification préalable.
La CVE-2025-29927 affecte plusieurs versions de Next.js. Bien que la méthode d'exploitation puisse varier légèrement d'une version à l'autre, le problème fondamental reste le même. Dans les versions antérieures, l'exploitation utilise un en-tête de requête élaboré dont la valeur inclut _middleware ; dans les versions plus récentes, elle utilise middleware ou src/middleware pour s'aligner sur la structure du fichier middleware et les conventions de dénomination mises à jour.
La vulnérabilité a été corrigée dans les versions 14.2.25 and 15.2.3 de Next.js, mais les serveurs exécutant des versions de Next.js antérieures à 14.2.25 (pour 14.x) et 15.2.3 (pour 15.x), ainsi que les versions 11.1.4 à 13.5.6, peuvent encore être vulnérables.
Trafic d'attaques observé
Le groupe SIG d'Akamai a observé les premières tentatives d'exploitation ciblant cette vulnérabilité, où les attaquants recherchaient des serveurs affectés. Parmi les charges utiles identifiées, une technique notable consiste à utiliser l'en-tête x-middleware-request avec la valeur src/middleware:src/middleware:src/middleware:src/middleware:src/middleware.
Cette approche simule plusieurs sous-requêtes internes au sein d'une même requête, déclenchant ainsi la logique de redirection interne de Next.js, qui ressemble étroitement à plusieurs exploitations de démonstration de faisabilité accessibles au public (Figure 1).
D'autres variantes d'attaques ciblant spécifiquement les anciennes versions de Next.js ont également été identifiées. La Figure 2 illustre une variante utilisant la charge utile pages/_middleware=.
Atténuation avec Akamai App & API Protector
Le 24 mars 2025, l'équipe de recherche sur les menaces d'Akamai a également déployé une règle rapide d'Adaptive Security Engine qui détecte la CVE (Figure 3).
3000958 — Contournement d'autorisation de middleware dans Next.js (CVE-2025-29927)
App & API Protector Les clients bénéficient d'une couverture complète grâce à cette nouvelle règle (Figure 4).
L'action par défaut de la version 1 de la règle rapide est définie sur Alerte. Pour bloquer les tentatives d'attaque, les clients peuvent définir l'action de la règle sur Refuser après avoir examiné les déclencheurs afin d'éliminer tout faux positif.
CEPENDANT : nous avons constaté que certains clients utilisent cet en-tête de façon légitime avec le nom du middleware comme valeur. Par conséquent, nous vous recommandons de ne pas configurer cette action de règle sur Refuser sans effectuer d'analyse approfondie ni appliquer de conditions supplémentaires.
Synthèse
Le groupe Security Intelligence (SIG) d'Akamai continuera de surveiller, générer des rapports et créer des mesures d'atténuation des menaces telles que celle-ci pour nos clients et la communauté de sécurité dans son ensemble. Pour rester au fait des dernières actualités du groupe SIG d'Akamai, consultez notre page d'accueil sur la recherche et suivez-nous sur les réseaux sociaux.