Next.js 16.3.6 behebt kritische ImageResponse-Codeausführungslücke
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.