CVE-2025-29927 : contournement d'autorisation middleware via en-tête x-middleware-subrequest dans next.js
HERMES
HERMES THREAT SCORE & EXPOSITION ROUTAGE ET AUTORISATION SAAS
Cible :Vercel Next.js 11.1.4 à 15.2.2 (Edge & Server Middleware) Confiance : 99%
94 / 100
Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 18 / 20
Militarisation 20 / 20
Exposition 19 / 20
Prévalence 20 / 20
Impact 18 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 18 / 20
Divergence & Justification opérationnelle
Hermes évalue la CVE-2025-29927 à un HTS de 94 (CRITIQUE). Cette vulnérabilité conceptuelle dans le routage de Next.js permet à n'importe quel client externe de désactiver l'exécution du fichier middleware.ts en injectant l'en-tête interne x-middleware-subrequest. Toutes les vérifications de sécurité, d'authentification SSO, de contrôle d'accès RBAC et de limitation de débit sont purement et simplement ignorées.
🕸️ Graphe de connaissances connecté & Provenance
CVE-2025-29927: Middleware Authorization Bypass via x-middleware-subrequest Header in Next.jsVULNÉRABILITÉ
Nœuds connectés : 0
1. Identification
Section intitulée « 1. Identification »| Paramètre | Spécification technique | Impact opérationnel |
|---|---|---|
| Identifiant CVE | CVE-2025-29927 | Référencement officiel NVD / MITRE |
| CWE associée | CWE-285 : Improper Authorization | Contournement complet de la couche d’autorisation applicative |
| Score CVSS v3.1 | 9.1 CRITIQUE | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
| Score CVSS v4.0 | 8.8 ÉLEVÉ | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N |
| CPE applicables | cpe:2.3:a:vercel:next.js:*:*:*:*:*:*:*:* | Applications d’entreprise construites sur le framework Next.js |
| Versions affectées | >= 11.1.4 < 12.3.5, 13.x < 13.5.9, 14.x < 14.2.25, 15.x < 15.2.3 | Tout projet s’appuyant sur middleware.ts pour la sécurité |
| Versions corrigées | 12.3.5, 13.5.9, 14.2.25, 15.2.3 (Mars 2025) | Versions de sécurité publiées par Vercel |
2. Exploitation
Section intitulée « 2. Exploitation »- CISA KEV : non répertoriée formellement dans le catalogue KEV mais ciblée par des attaques automatisées globales.
- Score EPSS : 0.99225 (Percentile : 99.934% — quasi-certitude d’exploitation en milieu réel).
- Statut opérationnel : exploitation triviale largement documentée et adoptée par des attaquants opportunistes et auditeurs de sécurité.
- PoC & weaponization : il suffit d’ajouter l’en-tête HTTP
x-middleware-subrequest: 1à n’importe quelle requêtecurlpour neutraliser le middleware. - Conditions d’accès : pré-authentification totale ; accès réseau public HTTPS ; complexité d’attaque nulle.
3. Threat intelligence
Section intitulée « 3. Threat intelligence »- Acteurs de menace : courtiers d’accès, scrapers de données sensibles, syndicats cybercriminels ciblant les applications SaaS et portails fintech.
- Campagnes observées : balayages massifs de routes protégées (
/admin,/api/internal/...,/dashboard) envoyant systématiquement l’en-tête subrequest. - Malwares associés : scripts de crawling automatisé et outils d’extraction d’API.
- Chronologie d’exploitation : publication du correctif et du commit de sécurité
52a078da3le 24 mars 2025 par l’équipe Vercel.
4. Détection et triage forensique
Section intitulée « 4. Détection et triage forensique »Indicateurs de compromission (IOCs)
Section intitulée « Indicateurs de compromission (IOCs) »- Requêtes clientes externes anormales : présence de l’en-tête
x-middleware-subrequestdans les requêtes parvenant depuis l’extérieur sur le reverse proxy ou le WAF. - Accès anormaux aux routes administratives : accès avec statut HTTP 200 à des routes
/adminou/api/sans jeton de session JWT valide dans les en-têtes d’autorisation.
Règle Sigma
Section intitulée « Règle Sigma »title: Next.js Middleware Bypass Attempt via x-middleware-subrequest (CVE-2025-29927)id: b1c2d3e4-2992-4f89-9012-3456789abcdestatus: testdescription: Detects external incoming HTTP requests containing the internal Next.js x-middleware-subrequest headerreferences: - https://github.com/vercel/next.js/commit/52a078da3884efe6501613c7834a3d02a91676d2author: Hermes Codex Researchdate: 2026-09-10logsource: category: webserverdetection: selection: cs_headers|contains: 'x-middleware-subrequest' condition: selectionfalsepositives: - Aucune requête externe légitime ne doit jamais contenir cet en-tête internelevel: criticalSignature YARA
Section intitulée « Signature YARA »rule Exploit_Nextjs_Middleware_Bypass_CVE_2025_29927 { meta: description = "Detecte les requetes HTTP exploitant le bypass de middleware Next.js" author = "Hermes Codex Research" date = "2026-09-10" reference = "CVE-2025-29927" strings: $hdr = "x-middleware-subrequest:" ascii nocase $admin_uri = "/admin" ascii $api_uri = "/api/" ascii condition: $hdr and ($admin_uri or $api_uri)}Signature Suricata / Snort
Section intitulée « Signature Suricata / Snort »alert http $EXTERNAL_NET any -> $WEB_SERVERS any (msg:"HERMES - Next.js x-middleware-subrequest Authorization Bypass Attempt (CVE-2025-29927)"; flow:to_server,established; content:"x-middleware-subrequest"; http_header; classtype:policy-violation; sid:202529927; rev:1;)Logs & artefacts forensiques
Section intitulée « Logs & artefacts forensiques »- Journaux de reverse proxy (cloudflare, AWS CloudFront, Nginx) : inspecter les requêtes contenant
x-middleware-subrequest. - Journaux d’audit applicatifs : comparer les accès aux APIs sensibles avec l’historique d’émission de jetons de session.
- MITRE ATT&CK : T1190 (Exploit Public-Facing Application), T1556 (Modify Authentication Process), T1078 (Valid Accounts).
5. Remédiation et durcissement
Section intitulée « 5. Remédiation et durcissement »- Mise à niveau immédiate de next.js : mettre à niveau le paquet
nextvers 15.2.3, 14.2.25, 13.5.9 ou 12.3.5. - Suppression de l’en-tête au niveau du reverse proxy : si la mise à niveau ne peut être faite instantanément, configurer le WAF ou le reverse proxy (Nginx, Cloudflare) pour supprimer systématiquement l’en-tête :
proxy_set_header x-middleware-subrequest "";. - Double vérification de sécurité (defense in depth) : ne jamais déléguer l’intégralité du contrôle d’accès au seul middleware ; valider impérativement les autorisations dans les Server Actions et Route Handlers (
layout.tsx,route.ts). - Audit des accès administratifs passés : analyser les journaux d’accès pour identifier si des routes protégées ont été sollicitées avec cet en-tête au cours des mois écoulés.
- Redéploiement et purge du cache Edge : purger intégralement les caches de distribution de contenu (CDN) et redéployer l’application.
6. Scénario d’impact d’entreprise
Section intitulée « 6. Scénario d’impact d’entreprise »« What happens if this vulnerability is exploited in an enterprise? »
Section intitulée « « What happens if this vulnerability is exploited in an enterprise? » »
- Repérage d’une application Next.js : l’attaquant cible une application SaaS d’entreprise utilisant Next.js avec un portail d’administration protégé à l’adresse
/admin.- Injection de l’en-tête interne : l’assaillant forge une requête HTTP GET vers
/adminen ajoutant simplement l’en-têtex-middleware-subrequest: 1.- Neutralisation du middleware de sécurité : le runtime Next.js interprète cet en-tête comme le signe que la requête provient déjà d’une sous-requête interne ayant déjà franchi les contrôles. Il saute l’exécution du fichier
middleware.ts.- Accès direct au panneau d’administration : l’attaquant accède sans aucun compte ni mot de passe aux tableaux de bord d’administration et aux APIs internes.
- Exfiltration de données et modification de paramètres : l’assaillant extrait la liste complète des utilisateurs, modifie les autorisations des clients et accède aux données financières ou confidentielles de l’entreprise.