← Actus Dev

Dev News 13 nov. 2026 : Node 27 alpha génère des certificats X.509, Storybook 11 beta.2 allège le CLI et Astro corrige un XSS dans les slots

Lo nuevo hoy

Today's highlights

Points forts du jour

Click en cualquiera para ir al detalle

Click any item to jump to the full section

Cliquez un élément pour aller à la section complète

🔥

Top Stories

Destacado

Node.js 27.0.0-alpha.0.1.0: generación de X.509 con CSR, subprocess.timedOut y lookups de DNS deduplicados

La alpha de Node 27 sigue sumando cosas que vas a querer usar. crypto ahora genera certificados X.509 con soporte de CSR, algo para lo que hasta hoy terminabas llamando a openssl o trayendo una dependencia. child_process agrega subprocess.timedOut para saber si el proceso murió por timeout sin adivinar por la señal, y dns junta los lookup() concurrentes idénticos en uno solo. También hay trabajo de arranque: los single executable applications generan un compile cache para los módulos del VFS y los workers precargan streams en el startup snapshot. Es alpha, no la pongas en producción, pero ya vale la pena probar tus tests contra ella.

12 Nov 2026
github.com/nodejs/node →
Beta

Storybook 11.0.0-beta.2: el CLI instala 13 paquetes en vez de 128 y docgen corre sobre la API nativa de TypeScript 7.1

Esto es una dieta en serio: el CLI saca jscodeshift y Babel y pasa de instalar 128 paquetes a 13. Además, el docgen de React y Angular ahora corre sobre la API nativa de TypeScript 7.1 (el plugin de Vite para React queda fijado en 0.7 hasta que 7.1 sea estable). En SvelteKit, los módulos $app se mockean con la mock API de Storybook y desaparece sveltekit_experimental, con un automigrate que lo pasa a beforeEach. Y los docs suman snippet templates para que el código de ejemplo siga a los controls. Sigue siendo beta, pero la dirección está clarísima: menos dependencias y el toolchain nativo de TypeScript.

12 Nov 2026
github.com/storybookjs/storybook →
🧩

JS Frameworks

Seguridad

Astro: XSS reflejado por nombres de slot sin escapar en @astrojs/solid-js y @astrojs/svelte

Dos advisories gemelos (CVE-2026-126363 y CVE-2026-126362, CVSS 2.3): el renderer envolvía el contenido de un slot con nombre en <astro-slot> y escribía ese nombre en el atributo name sin escapar HTML. Si tu página usa algo de la request como nombre de slot (un query param, por ejemplo), una comilla cierra el atributo y entra HTML arbitrario. El alcance es acotado: hace falta que el componente esté hidratado con client:* y que renderice el slot por nombre dinámico. Los fixes están en @astrojs/solid-js 7.1.2 y @astrojs/svelte 9.1.2. Severidad baja, pero es un bump trivial: hacelo.

12 Nov 2026
github.com/advisories →
Patch

Astro 7.4.11: security.allowedDomains valida protocolo, host y puerto juntos

Si corrés Astro detrás de un proxy, esto te interesa. Los headers X-Forwarded-Proto, X-Forwarded-Host y X-Forwarded-Port ahora se validan en conjunto contra cada entrada de security.allowedDomains, en vez de uno por uno, y ya no se aceptan protocolos que no sean HTTP(S) como ftp o ws. De paso: el dev server responde 400 a paths con percent-encoding roto en lugar de 500, astro build deja de borrar el archivo de licencias de build.license de Vite, y se corrige un bug donde hacer spread del mismo objeto sobre un elemento con scoped styles le iba engordando el class en cada request.

11 Nov 2026
github.com/withastro/astro →
RC

Vue 3.6.0-rc.15: Vapor se sigue alineando con el VDOM y varios fixes de reactivity

Otra release candidate de pulido. El compilador de Vapor corrige casos donde se comportaba distinto al VDOM (un argumento dinámico llamado key, la opción slotted omitida) y ahora reporta hijos inválidos en KeepAlive. El HMR recarga el componente raíz de un custom element de Vapor ya montado. En reactivity: effect() deja de mutar el objeto de opciones que le pasás, y un computed invalidado por su propia ejecución ya no notifica a sus lectores.

12 Nov 2026
github.com/vuejs/core →
RC

Qwik 2.0.0-rc.5: retries en SSG y un migrate-v2 que arrastra librerías de Qwik 1

La quinta RC de Qwik 2 apunta a que la migración no duela. migrate-v2 ahora bundlea en el server las librerías construidas con Qwik 1, les pisa @builder.io/qwik con la v2, y si lo corrés sobre una app que ya es v2 la actualiza a la release actual. En el router, SSG suma la opción retries para re-renderizar una ruta que falló antes de romper el build. Entre los fixes hay dos que conviene tener: se rechazan URLs de redirect inseguras en actions y loaders del cliente, y una página que crasheaba antes de mandar contenido respondía 200 en vez de 500.

09 Nov 2026
github.com/QwikDev/qwik →
🔧

Build Tools & Runtimes

Seguridad

@hono/node-server: un backslash en el path saltea las reglas del reverse proxy

Ojo si servís Hono sobre Node detrás de nginx, HAProxy o Envoy. CVE-2026-126210 (CVSS 5.3): el adapter le pasaba el request-target crudo al parser de URL de WHATWG, que trata el backslash como / y resuelve los ... Un pedido a /public\..\admin/secret le llega a la app como /admin/secret, mientras que el proxy evaluó sus reglas contra el path original y lo dejó pasar. El fix responde 400 Bad Request a cualquier path con backslash crudo, en HTTP/1.1, HTTP/2 y upgrades de WebSocket. Está en @hono/node-server 2.1.6 y 1.19.18. El control de acceso dentro de la app (middleware sobre /admin/*) no se ve afectado.

12 Nov 2026
github.com/advisories →
🔥

Top Stories

Notable

Node.js 27.0.0-alpha.0.1.0: X.509 generation with CSR support, subprocess.timedOut and coalesced DNS lookups

The Node 27 alpha keeps adding things you will want. crypto can now generate X.509 certificates with CSR support, a job that until now meant shelling out to openssl or pulling in a dependency. child_process adds subprocess.timedOut so you can tell a timeout kill apart without guessing from the signal, and dns coalesces identical concurrent lookup() requests into one. There is startup work too: single executable applications generate a compile cache for VFS modules, and workers preload streams into the startup snapshot. It is an alpha, so keep it out of production, but it is worth running your test suite against it.

12 Nov 2026
github.com/nodejs/node →
Beta

Storybook 11.0.0-beta.2: the CLI installs 13 packages instead of 128 and docgen runs on the TypeScript 7.1 native API

A real diet: the CLI drops jscodeshift and Babel and goes from installing 128 packages to 13. React and Angular docgen now run on the TypeScript 7.1 native API (the React docgen Vite plugin stays pinned to 0.7 until 7.1 is stable). For SvelteKit, $app modules are mocked with Storybook's mock API and sveltekit_experimental is removed, with an automigration that moves it to beforeEach. Docs also gain snippet templates so story snippets can follow the controls. Still a beta, but the direction is clear: fewer dependencies and the native TypeScript toolchain.

12 Nov 2026
github.com/storybookjs/storybook →
🧩

JS Frameworks

Security

Astro: reflected XSS via unescaped slot names in @astrojs/solid-js and @astrojs/svelte

Two twin advisories (CVE-2026-126363 and CVE-2026-126362, CVSS 2.3): the renderer wrapped named slot content in <astro-slot> and wrote the slot name into its name attribute without HTML escaping. If a page takes the slot name from the request (a query parameter, say), a quote character ends the attribute and injects arbitrary HTML. The reach is narrow: the component has to be hydrated with a client:* directive and render the slot by a dynamic name. Fixes are in @astrojs/solid-js 7.1.2 and @astrojs/svelte 9.1.2. Low severity, but the bump is trivial.

12 Nov 2026
github.com/advisories →
Patch

Astro 7.4.11: security.allowedDomains validates protocol, host and port together

Worth a look if you run Astro behind a proxy. The X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-Port headers are now validated together against each security.allowedDomains entry instead of one at a time, and non-HTTP(S) protocols such as ftp or ws are no longer accepted. Also in this patch: the dev server returns 400 for malformed percent-encoded paths instead of a 500, astro build stops deleting the license file from Vite's build.license, and spreading the same object onto an element with scoped styles no longer grows its class on every request.

11 Nov 2026
github.com/withastro/astro →
RC

Vue 3.6.0-rc.15: Vapor keeps aligning with the VDOM, plus reactivity fixes

Another polish release candidate. The Vapor compiler fixes cases where it diverged from the VDOM (a dynamic argument named key, an omitted slotted option) and now reports invalid KeepAlive children. HMR reloads the root component of a mounted Vapor custom element. On the reactivity side, effect() no longer mutates the options object you pass in, and a computed invalidated by its own run no longer notifies its readers.

12 Nov 2026
github.com/vuejs/core →
RC

Qwik 2.0.0-rc.5: SSG retries and a migrate-v2 that carries Qwik 1 libraries along

The fifth Qwik 2 release candidate is about making the migration painless. migrate-v2 now bundles libraries built with Qwik 1 on the server, overrides @builder.io/qwik with v2 for them, and updates an app that is already on v2 to the current release. In the router, SSG gains a retries option to re-render a failed route before the build fails. Two fixes worth having: unsafe redirect URLs are rejected in client actions and loaders, and a page that crashed before sending content used to answer 200 instead of 500.

09 Nov 2026
github.com/QwikDev/qwik →
🔧

Build Tools & Runtimes

Security

@hono/node-server: a backslash in the path bypasses reverse proxy rules

Heads up if you serve Hono on Node behind nginx, HAProxy or Envoy. CVE-2026-126210 (CVSS 5.3): the adapter passed the raw request-target to the WHATWG URL parser, which treats a backslash as / and then resolves .. segments. A request for /public\..\admin/secret reaches the app as /admin/secret, while the proxy applied its path rules to the original path and let it through. The fix answers 400 Bad Request to any path containing a raw backslash, across HTTP/1.1, HTTP/2 and WebSocket upgrades. It ships in @hono/node-server 2.1.6 and 1.19.18. Access control inside the app, such as middleware on /admin/*, is not affected.

12 Nov 2026
github.com/advisories →
🔥

Top Stories

Notable

Node.js 27.0.0-alpha.0.1.0 : génération X.509 avec CSR, subprocess.timedOut et lookups DNS dédupliqués

L'alpha de Node 27 continue d'ajouter des fonctionnalités utiles. crypto peut désormais générer des certificats X.509 avec prise en charge des CSR, ce qui imposait jusqu'ici d'appeler openssl ou d'ajouter une dépendance. child_process ajoute subprocess.timedOut pour distinguer un arrêt par timeout sans deviner d'après le signal, et dns regroupe les requêtes lookup() concurrentes identiques. Côté démarrage, les single executable applications génèrent un compile cache pour les modules du VFS et les workers préchargent les streams dans le startup snapshot. C'est une alpha, à ne pas mettre en production, mais elle mérite un passage de votre suite de tests.

12 Nov 2026
github.com/nodejs/node →
Bêta

Storybook 11.0.0-beta.2 : le CLI installe 13 paquets au lieu de 128 et docgen tourne sur l'API native de TypeScript 7.1

Un vrai régime : le CLI abandonne jscodeshift et Babel et passe de 128 paquets installés à 13. Le docgen React et Angular s'exécute désormais sur l'API native de TypeScript 7.1 (le plugin Vite de docgen React reste fixé en 0.7 tant que 7.1 n'est pas stable). Pour SvelteKit, les modules $app sont mockés avec la mock API de Storybook et sveltekit_experimental disparaît, avec une automigration vers beforeEach. Les docs gagnent aussi des snippet templates pour que les extraits suivent les controls. C'est encore une beta, mais la direction est claire : moins de dépendances et le toolchain TypeScript natif.

12 Nov 2026
github.com/storybookjs/storybook →
🧩

JS Frameworks

Sécurité

Astro : XSS réfléchi via des noms de slot non échappés dans @astrojs/solid-js et @astrojs/svelte

Deux advisories jumeaux (CVE-2026-126363 et CVE-2026-126362, CVSS 2.3) : le renderer enveloppait le contenu d'un slot nommé dans <astro-slot> et écrivait ce nom dans l'attribut name sans échappement HTML. Si une page prend le nom du slot depuis la requête (un paramètre de query, par exemple), un guillemet ferme l'attribut et injecte du HTML arbitraire. La portée est limitée : le composant doit être hydraté avec une directive client:* et rendre le slot par un nom dynamique. Les correctifs sont dans @astrojs/solid-js 7.1.2 et @astrojs/svelte 9.1.2. Sévérité faible, mais la mise à jour est triviale.

12 Nov 2026
github.com/advisories →
Patch

Astro 7.4.11 : security.allowedDomains valide protocole, hôte et port ensemble

À regarder si Astro tourne derrière un proxy. Les en-têtes X-Forwarded-Proto, X-Forwarded-Host et X-Forwarded-Port sont désormais validés ensemble par rapport à chaque entrée de security.allowedDomains, et non plus un par un, et les protocoles non HTTP(S) comme ftp ou ws ne sont plus acceptés. Également : le serveur de dev renvoie 400 pour les chemins au percent-encoding invalide au lieu d'un 500, astro build ne supprime plus le fichier de licences de build.license de Vite, et le spread d'un même objet sur un élément avec scoped styles ne fait plus grossir son class à chaque requête.

11 Nov 2026
github.com/withastro/astro →
RC

Vue 3.6.0-rc.15 : Vapor continue de s'aligner sur le VDOM, avec des correctifs de reactivity

Encore une release candidate de finition. Le compilateur Vapor corrige des cas où il divergeait du VDOM (un argument dynamique nommé key, l'option slotted omise) et signale désormais les enfants invalides de KeepAlive. Le HMR recharge le composant racine d'un custom element Vapor déjà monté. Côté reactivity, effect() ne modifie plus l'objet d'options passé en argument, et un computed invalidé par sa propre exécution ne notifie plus ses lecteurs.

12 Nov 2026
github.com/vuejs/core →
RC

Qwik 2.0.0-rc.5 : retries en SSG et un migrate-v2 qui embarque les bibliothèques Qwik 1

La cinquième release candidate de Qwik 2 vise une migration sans douleur. migrate-v2 bundle désormais côté serveur les bibliothèques construites avec Qwik 1, remplace pour elles @builder.io/qwik par la v2, et met à jour une application déjà en v2 vers la release courante. Dans le router, le SSG gagne une option retries pour re-rendre une route en échec avant de faire échouer le build. Deux correctifs à retenir : les URL de redirection non sûres sont rejetées dans les actions et loaders côté client, et une page qui plantait avant d'envoyer du contenu répondait 200 au lieu de 500.

09 Nov 2026
github.com/QwikDev/qwik →
🔧

Build Tools & Runtimes

Sécurité

@hono/node-server : un backslash dans le chemin contourne les règles du reverse proxy

Attention si vous servez Hono sur Node derrière nginx, HAProxy ou Envoy. CVE-2026-126210 (CVSS 5.3) : l'adapter transmettait le request-target brut au parseur d'URL WHATWG, qui traite le backslash comme / puis résout les segments ... Une requête vers /public\..\admin/secret arrive à l'application comme /admin/secret, alors que le proxy a appliqué ses règles au chemin d'origine et l'a laissée passer. Le correctif répond 400 Bad Request à tout chemin contenant un backslash brut, en HTTP/1.1, HTTP/2 et pour les upgrades WebSocket. Il est livré dans @hono/node-server 2.1.6 et 1.19.18. Le contrôle d'accès dans l'application, comme un middleware sur /admin/*, n'est pas affecté.

12 Nov 2026
github.com/advisories →