GHSA-pqxc-r4h5-jc95: 
JavaScript Analyse et atténuation de la vulnérabilité

Summary

A wildcard redirect route rule whose target is /** copies the rest of the request path into the Location header. The 2.13.4 fix for GHSA-9phm-9p8f-hw5m collapses only a leading //, and only when the rule has no strip base. A remainder that starts with a backslash (raw or %5C) or with a tab followed by a slash (%09/) is emitted unchanged. Browsers treat \ as / in special-scheme URLs and strip tab, LF and CR, so /\evil.example and /<TAB>/evil.example resolve to //evil.example, a cross-origin redirect.

Details

Affected code (nitropack v2):

  • src/runtime/internal/route-rules.ts, redirect branch:
    • With a strip base ('/old/**'): isPathInScope() passes, because WHATWG URL canonicalizes \ to / and the path stays under /old. Then withoutBase(event.path, base) returns /\evil.example unchanged, and joinURL("/", ...) keeps it.
    • Without a strip base ('/**'): only ^//+ is collapsed. /\, /%5C and /<TAB>/ pass through.
  • h3 v1 has already decoded %5C and %09 in event.path, so the Location contains the literal characters.

Proof of concept

export default defineNitroConfig({
  routeRules: { "/old/**": { redirect: "/**" } },
});
RequestLocation (≤ 2.13.5)Browser resolves toLocation after fix
/old/%5Cevil.example/\evil.examplehttps://evil.example/evil.example
/old/\evil.example/\evil.examplehttps://evil.example/evil.example
/old/%5c%5cevil.example/\\evil.examplehttps://evil.example/evil.example
/old/%5C/evil.example/\/evil.examplehttps://evil.example/evil.example
/old/%09/evil.example/<TAB>/evil.examplehttps://evil.example/evil.example
/%5Cevil.example (catch-all '/**')/\evil.examplehttps://evil.example/evil.example
/%09/evil.example (catch-all)/<TAB>/evil.examplehttps://evil.example/evil.example
/old/%0A/evil.example500 (Node rejects the header)not exploitable on Node; defence in depth/evil.example

Impact

An attacker sends a victim a link on the trusted site, such as https://victim.example/old/%5Cevil.example. The site redirects the victim's browser to an attacker-controlled origin. You are affected if all of these are true:

  • you use nitropack v2 (including Nuxt 3 and 4 on nitropack 2);
  • you have a redirect route rule whose target is exactly /**, with nothing before it;
  • the Nitro runtime handles the redirect, not a platform's generated config.

Patches

Fixed in nitropack 2.13.6. Any leading run of slashes, backslashes, control characters and their percent-encoded forms in the redirect remainder is collapsed to a single /, so the Location header is always a same-origin path.

Workarounds

If you cannot upgrade:

  • use a redirect target with a non-empty prefix (for example /new/** instead of /**);
  • or define the redirect in your platform's or reverse proxy's configuration instead of a Nitro route rule.

Source: NVD

Connexe JavaScript Vulnérabilités :

CVE ID

Gravité

Partition

Technologies

Nom du composant

Exploit CISA KEV

A corrigé

Date de publication

GHSA-rhhp-7488-3qwfMEDIUM6.5
  • JavaScript logoJavaScript
  • nitropack
NonOuiNov 02, 2026
GHSA-pqxc-r4h5-jc95MEDIUM6.1
  • JavaScript logoJavaScript
  • nitropack
NonOuiNov 02, 2026
GHSA-39r7-wfcx-99xgMEDIUM4.8
  • JavaScript logoJavaScript
  • nitropack
NonOuiNov 02, 2026
GHSA-xrjv-fc7j-8f77HIGHN/A
  • JavaScript logoJavaScript
  • @graphql-tools/batch-execute
NonNonNov 02, 2026
GHSA-7p5p-67m9-5c8jHIGHN/A
  • JavaScript logoJavaScript
  • @graphql-tools/executor-http
NonNonNov 02, 2026

Évaluation gratuite des vulnérabilités

Évaluez votre posture de sécurité cloud

Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité afin d’évaluer votre niveau de risque et d’identifier les lacunes dans vos défenses.

Évaluation de la demande

Ressources Wiz supplémentaires

Obtenez une démo personnalisée

Prêt(e) à voir Wiz en action ?

"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
David EstlickRSSI
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
Adam FletcherChef du service de sécurité
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."
Greg PoniatowskiResponsable de la gestion des menaces et des vulnérabilités