Astro 6.1.8 corrige un bug critique de nom de fichier sur Netlify et une faille de sécurité sur /_image

Astro 6.1.8 corrige un bug critique de nom de fichier sur Netlify et une faille de sécurité sur /_image

lschvn

Astro 6.1.8 est sorti le 18 avril avec deux correctifs que les développeurs déployant sur Netlify ou Vercel devraient appliquer immédiatement.

Le Bug de Nom de Fichier qui Casse les Déploiements Netlify

La correction la plus impactante adresse une régression des versions 6.x : les noms de fichiers de build pouvaient contenir des caractères spéciaux (!, ~, {, }) invalidés ou supprimés sur certaines plateformes de déploiement.

Le problème se manifeste sur Netlify. La protection anti-skew — qui garantit que les assets déployés correspondent à la sortie du build — supprime les caractères jugés unsafe des noms de fichiers. Si votre HTML buildé référence chunk.abc123!~{x}.js et que Netlify le sert comme chunk.abc123.js, la référence casse et la page ne charge pas.

La équipe Astro confirme que cela affectait les builds où des imports dynamiques ou certains patterns de code-splitting produisaient des chunks avec des segments hash contenant ces caractères. La version 6.1.8 normalise les noms de fichiers en sortie pour éviter ces caractères.

Faille Content-Type de /_image

Le second correctif notable ferme une faille de sécurité dans l'endpoint d'optimisation d'image intégré d'Astro (/_image). L'endpoint acceptait un paramètre de requête f=svg arbitraire et servait le contenu retourné par l'URL upstream en image/svg+xml — sans vérifier que le contenu était réellement du SVG.

Un attaquant pouvait potentiellement utiliser cela pour des attaques de confusion content-type ou de cache poisoning si il arrivait à convaincre une victime de charger une URL image craftée pointant vers un endpoint interne. L'équipe Astro note que l'endpoint nécessite allowedDomains explicite, ce qui limite la surface d'attaque.

Performance : Cache de Crawling des Dépendances

Le serveur de dev gagne une amélioration measurable : le crawling interne des dépendances du projet est désormais mis en cache entre les requêtes. Dans les projets avec beaucoup de routes et un graphe de dépendances profond, cela réduit le parcours redondant du système de fichiers à chaque rafraîchissement.

Autres Correctifs en 6.1.8

  • Correction des chunks d'import dynamique recevant des hash frais à chaque build
  • allowedDomains correctement propagés au serveur de dev
  • Styles scoped Vue corrects pendant la navigation router côte client en dev
  • L'endpoint /_image valide désormais que la source est réellement du SVG avant de servir en image/svg+xml
  • Correction des erreurs de build sur Vercel et Netlify pour les chunks inter-modules utilisant des imports dynamiques

Mise à jour

Exécutez px @astrojs/upgrade ou npm install astro@latest pour mettre à jour. Si vous êtes sur Netlify ou Vercel, vérifiez que votre dernier déploiement charge correctement tous les assets.

Questions fréquentes

Articles connexes

Plus de couverture avec des sujets et tags en commun.

Nitro v3 Beta : Tracing intégré, détection inteligente des dépendances et support Vercel Queues
TypeScript

Nitro v3 Beta : Tracing intégré, détection inteligente des dépendances et support Vercel Queues

La mise à jour beta Nitro v3 d'avril 2026 apporte des canaux de tracing intégrés, une détection des dépendances en mode full-trace avec reconnaissance des packages natifs, le support des queues Vercel, et le déploiement sur Tencent EdgeOne Pages.
Svelte mars 2026 : Context programmatique, commentaires HTML et Error Boundaries côté serveur
JavaScript

Svelte mars 2026 : Context programmatique, commentaires HTML et Error Boundaries côté serveur

La mise à jour Svelte de mars apporte createContext pour l'instanciation programmatique de composants, les commentaires HTML dans les balises, et les error boundaries en SSR.
TypeScript 6.0 : la dernière release JavaScript avant le compilateur natif en Go
TypeScript

TypeScript 6.0 : la dernière release JavaScript avant le compilateur natif en Go

TypeScript 6.0 arrive comme une version de transition avec les imports de sous-chemin en #/, le tri stable des types, et une voie royale vers TypeScript 7.0 compilé en Go.

Commentaires

Connexion Connectez-vous pour participer à la conversation.

Pas encore de commentaires. Soyez le premier à partager vos pensées.