Next.js 16.3.6 behebt kritische ImageResponse-Codeausführungslücke
KI-generiertes Bild

Next.js 16.3.6 behebt kritische ImageResponse-Codeausführungslücke

Vercel hat CVE-2026-94545 behoben, eine kritische Next.js-Schwachstelle in ImageResponse, die es ermöglichen könnte, dass präparierter Bildtext Code auf Node.js-Servern ausführt.

Vercel hat Next.js 16.3.6 veröffentlicht, um eine kritische Sicherheitslücke in der ImageResponse-Funktion des Frameworks zu beheben, die von Websites verwendet wird, um Open-Graph- und andere Social-Preview-Bilder zu erstellen – die Bilder, die erscheinen, wenn ein Link in sozialen Medien oder Chat-Apps geteilt wird. Die als CVE-2026-94545 erfasste Schwachstelle kann es einem Angreifer ermöglichen, Code auf einem Server auszuführen, wenn eine Anwendung vom Angreifer kontrollierte Werte, beispielsweise aus einer Anfrage-URL gelesenen Text, in den Bilderzeugungsprozess einfügt. Vercel, das Unternehmen, das Next.js wartet, kündigte den Fix am 22. September an und bewertet das Problem als kritisch mit einem CVSS-Score (Common Vulnerability Scoring System) von 9,5.

Die betroffenen Versionen sind Next.js 16.2.0 bis 16.3.5, wenn ImageResponse auf der Node.js-Laufzeitumgebung ausgeführt wird, der standardmäßigen serverseitigen JavaScript-Umgebung in Next.js. Die Edge-Version von ImageResponse ist nicht betroffen, und Next.js 15 ist ebenfalls nicht betroffen. ImageResponse verwendet eine Bibliothek namens Satori, die ebenfalls von Vercel entwickelt wurde, um das Bildlayout in SVG (Scalable Vector Graphics, ein textbasiertes Bildformat) umzuwandeln, bevor das endgültige PNG-Bild erstellt wird. Laut Vercels Advisory betrifft die Schwachstelle Apps, die vom Angreifer kontrollierte Werte in SVG-Inhalte, -Attribute oder -Stile während der Bilderzeugung übergeben. Das Beispiel im Advisory nimmt einen Wert aus einer Anfrage-URL und platziert ihn in einem SVG-Title-Element. Es wird nicht gesagt, ob Text in gewöhnlichen Elementen, wie eine Überschrift innerhalb eines div, ebenfalls zählt.

Um herauszufinden, wo eine Anwendung die Funktion verwendet, sollten Entwickler nach ImageResponse suchen, das aus next/og importiert wird, beispielsweise in Route Handlers und in opengraph-image-Dateien. Route Handlers erstellen das Bild, wenn eine Anfrage eingeht, während eine opengraph-image-Datei es entweder zur Build-Zeit oder bei Eingang einer Anfrage erstellen kann. Stand 23. September berichtete The Hacker News, dass keine öffentlichen Berichte über Angriffe, die diese Schwachstelle ausnutzen, und kein öffentlicher Exploit-Code gefunden wurden.

Die einzige gepatchte Version ist Next.js 16.3.6, die mit npm install next@16.3.6 installiert werden kann. Stand 23. September gab es im npm-Registry keine feste Version für die 16.2-Linie, sodass Websites auf 16.2 auf 16.3.6 umsteigen müssen. Next.js 15.5.26 fügt zusätzliche Sicherheitshärtung für next/og in der 15.5-Linie hinzu. Wenn das Upgrade warten muss, besteht die Problemumgehung des Advisories darin, vom Angreifer kontrollierte Werte aus den SVG-Inhalten, -Attributen und -Stilen herauszuhalten, die die Node.js-ImageResponse rendert. Das Advisory schlägt nicht vor, auf die nicht betroffene Edge-Version umzusteigen, und die Next.js-Dokumentation markiert die Edge-Laufzeitumgebung als veraltet.

Die Überprüfungen von The Hacker News am 23. September zeigten auch einige Erkennungslücken. Das npm audit-Tool meldete Next.js 16.3.5, eine betroffene Version, nicht. Das Advisory war noch nicht in der GitHub Advisory Database aufgeführt, und es war zu diesem Zeitpunkt kein CVE-Eintrag für CVE-2026-94545 veröffentlicht. Vercels Advisory und Ankündigung bieten auch keine Möglichkeit zu prüfen, ob eine betroffene Route vor dem Patch missbraucht wurde, und sie sagen nicht, ob Apps, die auf Vercel gehostet werden, geschützt sind. Für zwei kritische Next.js-Schwachstellen, die im August behoben wurden, sagte das Unternehmen, dass gehostete Apps geschützt seien und kein Upgrade benötigten, aber eine solche Aussage erscheint für diese Schwachstelle nicht. Betroffene Versionen sind verfügbar, seit Next.js 16.2 am 18. März veröffentlicht wurde.

Der Fehler selbst liegt in Satori, und Satoris eigenes Advisory, das am selben Tag veröffentlicht wurde, besagt, dass bestimmte Werte seine SVG-Ausgabe erreichten, ohne ordnungsgemäß escaped zu werden. Ein speziell erstellter Wert könnte dann als SVG-Code statt als Klartext gelesen werden. In Next.js könnten solche Werte Schwachstellen in anderen Bibliotheken erreichen, von denen Next.js abhängt, und zur Codeausführung führen, sagte Vercel. Vercel hat diese Bibliotheken nicht genannt. Satoris Advisory bewertet dasselbe CVE als mittelschwer mit einem Score von 5,3 und besagt, dass die Auswirkungen davon abhängen, wie die SVG-Ausgabe verwendet wird. Entwickler, die Satori direkt verwenden, sollten es auf Version 0.33.5 aktualisieren, die den Fix enthält.

Da Satori in das Next.js-Paket eingebettet ist, erscheint es nicht als separate Abhängigkeit in der Lockfile eines Projekts, sodass das Verlassen auf einen Dependency-Scanner es übersehen könnte. Vercel empfiehlt, die Next.js-Version direkt zu überprüfen. Für Teams, die viele JavaScript-Anwendungen verwalten, bietet AEU-I sicherheitsorientierte IT und Beratung, die bei der Patch-Planung und Überprüfung von Abhängigkeiten helfen kann.

So schützen Sie sich

  1. Aktualisieren Sie Ihre Website-Software so bald wie möglich auf Next.js Version 16.3.6, wenn Ihre Website sie verwendet.
  2. Bitten Sie Ihren Entwickler, die Next.js-Versionsnummer direkt zu überprüfen, anstatt sich auf einen Sicherheitsscanner zu verlassen, da einige Scanner die Schwachstelle übersehen haben.
  3. Bis Sie aktualisieren können, lassen Sie nicht zu, dass Text aus Besucher-URLs oder Benutzereingaben zum Erstellen von Social-Preview-Bildern verwendet wird.
  4. Behalten Sie die offizielle Vercel-Sicherheitsempfehlung und den CVE-Eintrag im Auge und befolgen Sie alle zusätzlichen Hinweise, die sie veröffentlichen.
  5. Wenn Ihr Team das Satori-Bildwerkzeug eigenständig verwendet, aktualisieren Sie Satori auf Version 0.33.5.

Schwachstellen & Lösungen

Begriffe Erklärt

  • Next.js Ein beliebtes Framework zum Erstellen von Websites und Webanwendungen mit JavaScript.
  • ImageResponse Eine Next.js-Funktion, die Bilder für Social-Media-Vorschauen und Link-Karten erstellt.
  • SVG Scalable Vector Graphics, ein textbasiertes Bildformat, das zum Zeichnen von Formen und Text auf Webseiten verwendet wird.
  • CVSS Common Vulnerability Scoring System, eine numerische Skala, die bewertet, wie schwerwiegend eine Sicherheitslücke ist.
  • Node.js runtime Die Umgebung, die JavaScript-Code auf einem Server statt in einem Browser ausführt.
  • npm Ein Tool und eine Online-Registry zum Installieren und Verwalten von JavaScript-Paketen und Abhängigkeiten.
  • dependency Eine Softwarebibliothek oder ein Paket, auf die ein anderes Programm angewiesen ist, um zu funktionieren.

Verwandte AEU-Dienste

  • AEU DNS Verschlüsselter DNS-Resolver