Aller au contenu

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
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

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
ParamètreSpécification techniqueImpact opérationnel
Identifiant CVECVE-2025-29927Référencement officiel NVD / MITRE
CWE associéeCWE-285 : Improper AuthorizationContournement complet de la couche d’autorisation applicative
Score CVSS v3.19.1 CRITIQUECVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Score CVSS v4.08.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 applicablescpe: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.3Tout projet s’appuyant sur middleware.ts pour la sécurité
Versions corrigées12.3.5, 13.5.9, 14.2.25, 15.2.3 (Mars 2025)Versions de sécurité publiées par Vercel

  • 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ête curl pour neutraliser le middleware.
  • Conditions d’accès : pré-authentification totale ; accès réseau public HTTPS ; complexité d’attaque nulle.

  • 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é 52a078da3 le 24 mars 2025 par l’équipe Vercel.

  • Requêtes clientes externes anormales : présence de l’en-tête x-middleware-subrequest dans 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 /admin ou /api/ sans jeton de session JWT valide dans les en-têtes d’autorisation.
title: Next.js Middleware Bypass Attempt via x-middleware-subrequest (CVE-2025-29927)
id: b1c2d3e4-2992-4f89-9012-3456789abcde
status: test
description: Detects external incoming HTTP requests containing the internal Next.js x-middleware-subrequest header
references:
- https://github.com/vercel/next.js/commit/52a078da3884efe6501613c7834a3d02a91676d2
author: Hermes Codex Research
date: 2026-09-10
logsource:
category: webserver
detection:
selection:
cs_headers|contains: 'x-middleware-subrequest'
condition: selection
falsepositives:
- Aucune requête externe légitime ne doit jamais contenir cet en-tête interne
level: critical
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)
}
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;)
  • 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).

  1. Mise à niveau immédiate de next.js : mettre à niveau le paquet next vers 15.2.3, 14.2.25, 13.5.9 ou 12.3.5.
  2. 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 "";.
  3. 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).
  4. 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.
  5. Redéploiement et purge du cache Edge : purger intégralement les caches de distribution de contenu (CDN) et redéployer l’application.

« What happens if this vulnerability is exploited in an enterprise? »

Section intitulée « « What happens if this vulnerability is exploited in an enterprise? » »
  1. 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.
  2. Injection de l’en-tête interne : l’assaillant forge une requête HTTP GET vers /admin en ajoutant simplement l’en-tête x-middleware-subrequest: 1.
  3. 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.
  4. 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.
  5. 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.