← Alle Beiträge

Next.js behebt zwei kritische RCE-Schwachstellen und einen CPU-DoS

Next.js behebt zwei kritische RCE-Schwachstellen und einen CPU-DoS

Next.js hat zwei kritische Schwachstellen für remote code execution (RCE) behoben, durch die ein nicht authentifizierter Angreifer Code auf einem Server ausführen könnte, sowie ein schwerwiegendes Problem, das denial of service verursachen kann. Das out-of-band update, das am 14. Oktober außerhalb des normalen Veröffentlichungsplans herausgegeben wurde, ist als Next.js 16.4.1 und 15.5.28 verfügbar, den aktuellen long-term support-Releases der Kategorien Active und Maintenance. Vercel, das Next.js entwickelt, bewertete beide Schwachstellen zur Codeausführung nach dem Common Vulnerability Scoring System (CVSS) mit 9,5 Punkten.

Das erste RCE-Problem, das als GHSA-673q-mjm6-r5xr geführt wird, betrifft Next.js 16.0.0 bis 16.4.0. Gefährdet sind ausschließlich App Router-Anwendungen, die Cache Components aktivieren und eine Funktion mit use cache enthalten, die mehr als ein typed array zurückgibt, also eine strukturierte Sammlung binärer Werte. Vercel empfiehlt dennoch ein Upgrade, selbst wenn eine Anwendung keine solche Funktion enthält. Das Problem liegt in React Server Components, einer React-Funktion, die Komponenten der Benutzeroberfläche auf dem Server statt vollständig im Browser eines Besuchers ausführt.

Das zugehörige Advisory von React gilt für die Versionen 19.0.0 bis 19.3.0 von react-server-dom-webpack, react-server-dom-parcel und react-server-dom-turbopack. React beschreibt die betroffene Konstellation als äußerst selten: Antworten enthalten dabei mehrere typed array zusammen mit einem Wert, den ein Angreifer kontrolliert. Obwohl sich die Schwachstelle in denselben drei Packages befindet, die mit React2Shell in Verbindung stehen, ist ihr Anwendungsbereich deutlich enger. React2Shell war eine im Dezember 2025 offengelegte Schwachstelle mit maximalem Schweregrad, die in großem Umfang ausgenutzt wurde.

Die zweite RCE-Schwachstelle ist CVE-2026-96889 und wird außerdem als GHSA-2464-fhr4-w9xw geführt. Es handelt sich um einen Fehler bei der Speicherverwaltung in librsvg, einer Open-Source-Komponente zum Rendern von Bildern im Format Scalable Vector Graphics (SVG). Next.js greift über sharp, sein mitgeliefertes Package zur Bildverarbeitung, auf librsvg zu. Betroffen sind die Next.js-Versionen 10.0.0 bis 15.5.27 und 16.0.0 bis 16.4.0. Laut dem Advisory ist auf Linux-Systemen, die auf glibc basieren, Codeausführung möglich, wenn eine Anwendung eine von einem Angreifer bereitgestellte SVG-Datei an sharp übergibt. glibc ist eine zentrale Softwarebibliothek, die von vielen Linux-Distributionen verwendet wird.

Next.js optimiert SVG-Dateien standardmäßig nicht. Dieser Verarbeitungspfad wird verfügbar, wenn eine Anwendung die Einstellung dangerouslyAllowSVG aktiviert. Die betroffene Bibliothek kann auch Bilder für next/og rendern, das Vorschaubilder für soziale Netzwerke erzeugt, wenn diese Funktion die Node.js runtime verwendet, also die serverseitige Umgebung zur Ausführung von JavaScript. Next.js 16.4.1 erfordert sharp 0.35.5, das die korrigierte Version librsvg 2.63.2 enthält. Im Versionszweig 15 wird die Bildverarbeitungsschwachstelle durch Next.js 15.5.28 zusammen mit sharp 0.35.5 oder neuer behoben.

Das dritte Problem, GHSA-p3m5-59mp-jv5r, kann denial of service verursachen, sodass berechtigte Besucher eine Anwendung möglicherweise nicht mehr nutzen können. Betroffen sind Next.js 13.0.0 bis 15.5.27 und 16.0.0 bis 16.4.0. Eine App Router-Anwendung ist gefährdet, wenn sie mindestens eine Server Action definiert, also eine Funktion, die als Reaktion auf eine Anwendungsanfrage auf dem Server ausgeführt wird. Präparierte Anfragen können einen Serverprozess zu vollständiger CPU-Auslastung treiben und verhindern, dass dieser Prozess weiteren Datenverkehr verarbeitet. Anwendungen mit dem Pages Router sowie App Router-Anwendungen ohne Server Actions sind nicht betroffen.

Die Hosting-Architektur kann die Gefährdung beeinflussen. Netlify erklärte, dass seine Plattform den betroffenen Pfad des Image Optimizer nicht ausführt, und bezeichnete die Auswirkungen auf seine Umgebung als begrenzt, empfiehlt jedoch weiterhin ein Update. Diese Unterscheidung ändert nichts an der allgemeinen Abhilfemaßnahme: Betreiber sollten für Version 16 Next.js 16.4.1 beziehungsweise für Version 15 Next.js 15.5.28 installieren und die Anwendung anschließend neu erstellen und erneut bereitstellen, damit der korrigierte Code tatsächlich ausgeführt wird.

Administratoren von Version 15 sollten sharp nach dem Next.js-Upgrade gesondert überprüfen. Obwohl Vercels Advisory besagt, dass Package Manager die korrigierte sharp-Version automatisch bereitstellen sollten, erlaubt Next.js 15.5.28 weiterhin den betroffenen Versionszweig sharp 0.34.x. Bei einem Update einer vorhandenen Installation kann daher die ältere Abhängigkeit bestehen bleiben. Administratoren können npm ls sharp ausführen und sharp ausdrücklich auf 0.35.5 oder neuer aktualisieren, falls das Ergebnis eine frühere Version anzeigt. Version 16.4.1 erfordert bereits sharp 0.35.5.

Wenn ein Next.js-Upgrade nicht sofort abgeschlossen werden kann, lässt sich das SVG-bezogene Risiko durch die Installation von sharp 0.35.5 oder neuer reduzieren. Das Advisory von sharp beschreibt außerdem, wie sich das Rendern von SVG mit sharp.block({ operation: ["VipsForeignLoadSvg"] }) blockieren lässt. Für die RCE-Schwachstelle in Cache Components und das denial of service-Problem in Server Actions gibt es keinen Workaround. Daher ist die Installation der korrigierten Next.js-Version die einzige angegebene Lösung für diese beiden Probleme.

Dependency Scanning erkennt möglicherweise nicht alle Probleme. Mit Stand vom 15. Oktober hatten die Advisories zu Cache Components und Server Actions keine CVE-Kennungen und fehlten im von npm audit verwendeten npm-Advisory-Feed. Die Bildverarbeitungsschwachstelle wird dagegen über das eigene Advisory von sharp angezeigt. Websitebetreiber sollten ein npm audit-Ergebnis ohne Befund daher nicht als Bestätigung dafür betrachten, dass eine betroffene Next.js-Version sicher ist.

Dies ist seit August bereits das dritte Problem zur Codeausführung in Next.js, das mit Bildverarbeitung zusammenhängt. Eine im August bekannt gewordene, über sharp erreichbare Schwachstelle in libheif konnte Code ausführen, wenn der Optimizer ein präpariertes AVIF-Bild verarbeitete. Im September ermöglichte ein Problem in next/og, dass von einem Angreifer kontrollierter Text das erzeugte SVG veränderte. Next.js 16.4.1 ändert den Code des Optimizer gegenüber 16.4.0 nicht, sondern behebt das jüngste Bildproblem, indem die mitgelieferte sharp-Version auf 0.35.5 angehoben wird.

CVE-2026-96889 wurde am 23. September öffentlich bekannt und am 27. September in sharp behoben. Red Hat bewertete das zugrunde liegende Problem mit 7,8 Punkten und erklärte, dass für eine Ausnutzung eine Benutzerinteraktion erforderlich sei, etwa das Öffnen einer schädlichen Datei. Vercel bewertete die Gefährdung in Next.js mit 9,5 Punkten, weil sie über ein Netzwerk erreichbar ist. Der Forscher, der die Schwachstelle in librsvg gemeldet hat, erklärt, dass sie auch hinter dem next/og-Problem vom September steckt. Für dieses wurde inzwischen ein funktionsfähiger Exploit veröffentlicht, der auf eine bestimmte Serverkonfiguration abzielt. Der Maintainer von sharp weist darauf hin, dass das Ergebnis je nach Node.js-Build des Servers entweder Codeausführung oder ein Absturz sein kann, weil den offiziellen Node.js-Binaries das Hardening gegen diese Art von Speicherangriff fehlt.

Für Unternehmen, die ihre Webinfrastruktur und die Zuständigkeiten für Upgrades überprüfen, bietet AEU-I sicherheitsorientierte IT-, Infrastruktur- und Beratungsleistungen an. Mit Stand vom 15. Oktober gab es keine öffentlichen Berichte darüber, dass Angreifer eine der drei am 14. Oktober behobenen Schwachstellen ausgenutzt hatten.

Auch verfügbar in: EnglishItaliano