来自 GitHub Advisory Database 的信息
10月23日周五昨天
Nuxt: Server-side route rules (`redirect`, `headers`, `proxy`, `ssr`) are skipped for case-variant paths when routing is case-insensitive
影響: npm:nuxt >= 4.0.0, < 4.6.2 → 4.6.2, npm:nuxt >= 3.0.0, < 4.0.0, npm:@nuxt/nitro-server >= 4.2.0, < 4.6.2 → 4.6.2, npm:@nuxt/nitro-server >= 3.20.0, < 4.0.0 With the default router.options.sensitive: false, Nuxt's page router resolves routes case-insensitively, so /Admin renders the same page as /admin. On the server, however, route rules were resolved with Nitro's route-rule matcher, which matches keys case-sensitively. A request whose path differs from a rule key only in letter case therefore rendered the page with none of that rule applied. Earlier fixes ([GHSA-mm7m-92g8-7m47](https://github.com/nuxt/nuxt/security/advisories/GHSA-mm7m-92g8-7m47)…
Nuxt server islands render `useHeadSafe` input without sanitisation
影響: npm:nuxt >= 3.13.0, < 4.6.2 → 4.6.2 useHeadSafe restricts head input to an allowlist of safe tags and attributes. For example, bodyAttrs is limited to class and style, event handler attributes are removed, and Mitigating factors - Server components are experimental. They are only active when the application defines a .server.vue component or page, or enables experimental.componentIslands and renders . - Exploitation requires the application to pass attacker-controlled data to useHeadSafe inside a server island. useHeadSafe called…
Nuxt: Route rules are matched against the raw request path, so a percent-encoded segment can bypass `appMiddleware` on dynamic and catch-all routes
影響: npm:nuxt >= 4.0.0, < 4.4.4 → 4.4.4, npm:nuxt >= 3.11.0, < 3.21.4 → 3.21.4 Nuxt compared routeRules keys against the raw request path, without decoding percent-encoding, while the router decodes parameters when it resolves a route. A request whose path is percent-encoded can therefore resolve to a page while failing to match the route rule meant to protect it, so the rule's appMiddleware never runs, including during server rendering. Impact For a page served through a dynamic or catch-all route, an attacker can percent-encode a character in the path to skip the rule:…