Astro 6.1.8 behebt kritischen Netlify-Deploy-Bug und Sicherheitslücke im /_image-Endpoint

Astro 6.1.8 behebt kritischen Netlify-Deploy-Bug und Sicherheitslücke im /_image-Endpoint

lschvn

Astro 6.1.8 erschien am 18. April mit zwei Fixes, die Entwickler auf Netlify oder Vercel sofort anwenden sollten.

Der Dateinamen-Bug, der Netlify Deployments brach

Der wichtigste Fix adressiert eine Regression: Build-Output-Dateinamen konnten Sonderzeichen (!, ~, {, }) enthalten, die auf bestimmten Deployment-Plattformen ungültig oder getrimmt werden.

Das Problem zeigt sich auf Netlify. Die Skew-Protection von Netlify — die sicherstellt, dass deployte Assets zum Build-Output passen — entfernt diese Zeichen vor dem Deployment. Wenn Ihr gebautes HTML auf chunk.abc123!~{x}.js verweist und Netlify es als chunk.abc123.js ausliefert, ist die Referenz kaputt.

Das Astro-Team bestätigt, dass dies Builds betraf, bei denen dynamische Imports oder bestimmte Code-Splitting-Patterns Chunks mit Hash-Segmenten erzeugten, die diese Zeichen enthielten. Version 6.1.8 normalisiert die Ausgabe-Dateinamen.

/_image Endpoint Content-Type Confusion

Der zweite bemerkenswerte Fix schließt eine Sicherheitslücke im integrierten Bildoptimierungs-Endpoint von Astro (/_image). Der Endpoint akzeptierte einen beliebigen f=svg Query-Parameter und lieferte den von der Upstream-URL zurückgegebenen Inhalt als image/svg+xml aus — ohne zu prüfen, ob der Inhalt tatsächlich SVG war.

Ein Angreifer konnte dies für Content-Type-Confusion-Angriffe oder Cache-Poisoning nutzen. Das Astro-Team merkt an, dass der Endpoint allowedDomains explizit erfordert, was die Angriffsfläche begrenzt, aber der Fix ist dennoch richtig.

Performance: Dev-Server Dependency Caching

Der Dev-Server erhält eine kleine aber messbare Verbesserung: Das interne Crawling der Projekt-Abhängigkeiten wird nun zwischen Requests gecached. In Projekten mit vielen Routes reduziert dies redundante Dateisystem-Durchsuchungen bei jedem Page-Refresh.

Andere Fixes in 6.1.8

  • Fix für dynamische Import-Chunks, die bei jedem Build frische Hashes erhielten
  • allowedDomains werden nun korrekt an den Dev-Server propagiert
  • Vue Scoped Styles funktionieren korrekt während Client-Side-Router-Navigation im Dev-Modus
  • /_image-Endpoint validiert nun, dass die Quelle tatsächlich SVG ist
  • Fix für Build-Fehler auf Vercel und Netlify bei inter-Chunk JavaScript mit dynamischen Imports

Upgrade

Führen Sie px @astrojs/upgrade oder npm install astro@latest aus. Prüfen Sie auf Netlify oder Vercel, ob Ihr letztes Deployment alle Assets korrekt lädt.

Häufig gestellte Fragen

Verwandte Artikel

Weitere Berichterstattung zu ähnlichen Themen und Tags.

Nitro v3.0.260522-beta: Build-Time Tracing-Wrapper, VFS-Performance-Boost, Vercel Queues Lokal
TypeScript

Nitro v3.0.260522-beta: Build-Time Tracing-Wrapper, VFS-Performance-Boost, Vercel Queues Lokal

Das Nitro v3 Beta vom 22. Mai bringt automatische Tracing-Span-Wrapper für Route-Handler zur Build-Zeit, einen VFS-Cache für dynamischen Nitro-App-Code und Vercel-Queue-Support im lokalen Development — zusammen mit den Sicherheitspatches der vorherigen Beta.
Node.js 26.3.0: Buffer-Pool verdoppelt, permission.drop() Methode,macOS Intel-Binary vor dem Aus
TypeScript

Node.js 26.3.0: Buffer-Pool verdoppelt, permission.drop() Methode,macOS Intel-Binary vor dem Aus

Node.js 26.3.0 bringt einen standardmäßigen Buffer.poolSize von 64 KiB, die neue Methode permission.drop() zur feingranularen Abgabe von Berechtigungen, eine Warnung zu macOS Universal-Binaries und gehärtetes WebCrypto. npm wird auf 11.16.0 aktualisiert.
Oxc v0.134: oxlint v1.68 Bringt Vue-Linter-Regeln und TypeScript-Accessor-Prüfungen
JavaScript

Oxc v0.134: oxlint v1.68 Bringt Vue-Linter-Regeln und TypeScript-Accessor-Prüfungen

Oxc's Juni-Release liefert oxlint v1.68.0 mit zwei neuen Vue-Regeln, einer method-signature-style TypeScript-Regel und Parser-Verbesserungen, die Ambient-Context-Missbrauch ablehnen.

Kommentare

Anmelden Melden Sie sich an, um an der Diskussion teilzunehmen.

Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.