GHSA-pqxc-r4h5-jc95: 
JavaScript Análisis y mitigación de vulnerabilidades

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.

Fuente: NVD

Relacionado JavaScript Vulnerabilidades:

CVE ID

Gravedad

Puntuación

Tecnologías

Nombre del componente

Exploit CISA KEV

Tiene solución

Fecha de publicación

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

Evaluación gratuita de vulnerabilidades

Haz un benchmark de tu postura de seguridad en la nube

Evalúa tus prácticas de seguridad en la nube en 9 dominios de seguridad para evaluar tu nivel de riesgo e identificar brechas en tus defensas.

Evaluación de solicitudes

Recursos adicionales de Wiz

Obtén una demostración personalizada

¿Listo para ver a Wiz en acción?

"La mejor experiencia de usuario que he visto en mi vida, proporciona una visibilidad completa de las cargas de trabajo en la nube."
David EstlickCISO
"Wiz proporciona un panel único para ver lo que ocurre en nuestros entornos en la nube."
Adam FletcherJefe de Seguridad
"Sabemos que si Wiz identifica algo como crítico, en realidad lo es."
Greg PoniatowskiJefe de Gestión de Amenazas y Vulnerabilidades