Banner E-Learning IT-Sicherheit
Free

Kritische Next.js-Lücken ermöglichen Angriffe ohne Anmeldung : Fehler in AVIF-Verarbeitung und Windows-Pfaden können zur Codeausführung führen

Vercel schließt zwei kritische Schwachstellen in Next.js. Unter bestimmten Voraussetzungen können Angreifer darüber ohne Anmeldung eigenen Code auf Servern ausführen. Eine Lücke steckt in der Verarbeitung von AVIF-Bildern, die andere betrifft ausschließlich Windows-Systeme.

Vercel hat am 25. August 2026 zwei kritische Sicherheitslücken im Webframework Next.js geschlossen. Beide können unter bestimmten Bedingungen Remote Code Execution (RCE) ermöglichen. Angreifer könnten dadurch aus der Ferne Code auf einem verwundbaren Server ausführen, ohne sich zuvor anmelden zu müssen.

Die Schwachstellen liegen allerdings in unterschiedlichen Bereichen. Eine betrifft die Verarbeitung von Dateipfaden auf Windows-Systemen, die andere die automatische Optimierung von Bildern im Format AV1 Image File Format (AVIF). Betreiber selbst gehosteter Next.js-Anwendungen sollten deshalb genau prüfen, welche Plattform und Konfiguration sie einsetzen.

Die korrigierten Versionen sind Next.js 15.5.24 im Maintenance-LTS-Zweig sowie 16.3.3 im Active-LTS-Zweig.

Windows-Lücke manipuliert interne Dateipfade

Die unter CVE-2026-75604 geführte Schwachstelle erreicht einen CVSS-Wert von 9,0. Betroffen sind Next.js-Anwendungen, die auf einem Windows-Dateisystem laufen und gleichzeitig den Pages Router sowie den App Router ohne Cache Components einsetzen.

Linux- und macOS-Installationen sind von dieser Schwachstelle nicht betroffen.

Verwundbar sind:

  • Next.js 13.4 bis 15.5.23
  • Next.js 16.0 bis 16.3.2

Technisch handelt es sich um eine Path-Traversal-Schwachstelle. Anwendungen setzen Dateipfade häufig aus mehreren Bestandteilen zusammen. Ein Teil davon kann beispielsweise aus einer URL oder einer internen Routing-Information stammen. Wird eine solche Eingabe nicht ausreichend geprüft, kann ein Angreifer den resultierenden Pfad so verändern, dass die Anwendung auf Dateien außerhalb des eigentlich vorgesehenen Verzeichnisses zugreift.

Typische Traversal-Angriffe verwenden dafür Konstruktionen wie ../, um in übergeordnete Verzeichnisse zu wechseln. Unter Windows kommen zusätzliche Besonderheiten der Pfadbehandlung hinzu, etwa Laufwerksbuchstaben, unterschiedliche Trennzeichen und spezielle Namenskonventionen.

Wie genau sich CVE-2026-75604 bis zur Codeausführung ausnutzen lässt, hat Vercel bislang nicht öffentlich dokumentiert. Das Unternehmen weist jedoch ausdrücklich darauf hin, dass „für betroffene unter Windows gehostete Anwendungen kein Workaround bekannt ist. Sie sollten sofort aktualisieren.“

AVIF-Datei löst Speicherfehler in Bibliothek aus

Die zweite Schwachstelle ist technisch komplexer. Sie steckt nicht unmittelbar im JavaScript-Code von Next.js, sondern in einer darunterliegenden Softwarebibliothek. Next.js kann Bilder automatisch verkleinern und für die Auslieferung im Web optimieren. Dafür verwendet das Framework das Bildverarbeitungspaket sharp. Dieses wiederum greift für bestimmte Formate auf native Bibliotheken zurück. Bei AVIF-Dateien kommt unter anderem libheif zum Einsatz. Genau dort befindet sich der eigentliche Fehler.

Die als GHSA-2xp9-vwfh-vxw4 dokumentierte Schwachstelle erreicht einen CVSS-v4-Wert von 9,5. Die zugrunde liegende Schwachstelle wurde von den Entwicklern von libheif unter der Kennung GHSA-g89c-p67h-r497 veröffentlicht. Ursache ist ein Heap Buffer Overflow in libheif. Dabei schreibt ein Programm mehr Daten in einen reservierten Speicherbereich, als dieser aufnehmen kann.

Solche Fehler sind besonders gefährlich, weil dadurch angrenzende Speicherbereiche überschrieben werden. Im harmloseren Fall stürzt der Prozess ab. Unter geeigneten Bedingungen lässt sich die Speicherbeschädigung jedoch so steuern, dass Programmstrukturen oder Funktionszeiger verändert werden. Daraus kann schließlich RCE entstehen. Betroffen sind alle libheif-Versionen bis einschließlich 1.23.1. Das zugehörige AVIF-Advisory für Next.js umfasst die Versionen 10.0.0 bis 15.5.23 sowie sämtliche 16.x-Versionen bis einschließlich 16.3.2.

Zwei Alpha-Kanäle bringen Speicherberechnung durcheinander

Der konkrete Angriff nutzt speziell konstruierte Strukturen innerhalb einer AVIF-Datei. Das Format erlaubt es, einzelne Bildbestandteile miteinander zu verknüpfen und zusätzliche Informationen wie Transparenzdaten einzubetten. Eine präparierte Datei kann libheif dazu bringen, beim Dekodieren zwei Alpha-Ebenen mit unterschiedlichen Farbtiefen zu erzeugen. Alpha-Daten bestimmen normalerweise die Transparenz einzelner Bildpunkte.

Der problematische Ablauf lässt sich vereinfacht in vier Schritte zerlegen:

  1. libheif verarbeitet zunächst einen Alpha-Kanal mit 8 Bit pro Wert.
  2. Die Bibliothek reserviert dafür einen entsprechend großen Zielpuffer im Arbeitsspeicher.
  3. Durch speziell verschachtelte Referenzen verarbeitet sie anschließend einen weiteren Alpha-Kanal mit 16 Bit pro Wert.
  4. Diese größeren Werte werden in denselben, ursprünglich nur für 8-Bit-Daten dimensionierten Puffer geschrieben.

Dadurch passen die Daten nicht mehr in den reservierten Speicherbereich. Laut Analyse können ungefähr 16.384 Byte über das Ende des Puffers hinaus geschrieben werden. Genau dieser Vorgang bildet den Heap Buffer Overflow.

Warum daraus Codeausführung entstehen kann

Ein Speicherüberlauf führt nicht automatisch zu RCE. Entscheidend ist, welche Daten hinter dem betroffenen Puffer im Speicher liegen und ob ein Angreifer den überschriebenen Inhalt ausreichend kontrollieren kann. Moderne Betriebssysteme erschweren solche Angriffe mit Schutzmechanismen wie Address Space Layout Randomization (ASLR), Data Execution Prevention (DEP) oder Control Flow Guard. Dennoch können gezielt präparierte Speicherfehler diese Schutzmechanismen unter bestimmten Voraussetzungen umgehen oder vorhandene Programmstrukturen missbrauchen.

Die Entdecker der Schwachstelle veröffentlichten einen Python-Proof-of-Concept, der die Speicherbeschädigung reproduziert. Bei einer mit Address Sanitizer (ASan) kompilierten Version von libheif wird der unzulässige Schreibzugriff unmittelbar erkannt. Die Autoren gehen noch weiter und erklären: „Wir konnten damit bei mehreren Anwendungen RCE erreichen.“ Öffentlich unabhängig bestätigt ist diese Aussage bislang allerdings nicht. Der nachgewiesene Speicherüberlauf allein rechtfertigt aufgrund seiner Position in einem serverseitigen Bildverarbeitungsprozess dennoch die kritische Einstufung.

Nicht jede Next.js-Anwendung verarbeitet AVIF

Die gute Nachricht: Der Angriff über AVIF funktioniert nicht bei jeder Next.js-Installation. AVIF-Optimierung ist nur aktiv, wenn Betreiber das Format ausdrücklich in der Konfigurationsdatei next.config.js freigeschaltet haben. Dort muss image/avif in der Option formats eingetragen sein. Ohne diese Einstellung verarbeitet der Bildoptimierer keine AVIF-Dateien über den gefährdeten Codepfad.

Bei aktivierter AVIF-Unterstützung betroffen sind:

  • Next.js 10.0.0 bis 15.5.23
  • alle 16.x-Versionen bis einschließlich 16.3.2

Vercel reagierte auf die Schwachstelle zunächst pragmatisch: In den korrigierten Next.js-Versionen wurde die AVIF-Optimierung vollständig deaktiviert. Damit lässt sich der verwundbare Programmteil nicht mehr über Next.js erreichen, bis die korrigierte Version von libheif zuverlässig über die Abhängigkeitskette ausgeliefert werden kann.

Abhängigkeiten werden zur Angriffsfläche

Der Fall zeigt zugleich ein grundlegendes Problem moderner Webanwendungen. Eine Sicherheitslücke muss nicht im eigentlichen Framework stecken, um dessen Anwender zu gefährden. Zwischen einer Next.js-Anwendung und der Verarbeitung eines AVIF-Bildes liegen mehrere Softwareebenen:

Next.js → sharp → libheif → Bilddekodierung

Eine Schwachstelle tief innerhalb dieser Kette kann sich deshalb bis zu einer öffentlich erreichbaren Webanwendung durchschlagen. Besonders kritisch wird das, wenn Angreifer selbst Dateien hochladen oder URLs zu Bildern vorgeben können, die anschließend serverseitig verarbeitet werden. Vercel hatte das August-Update ursprünglich für den 26. August im Rahmen seines monatlichen Sicherheitsrhythmus geplant. Die Veröffentlichung wurde jedoch um einen Tag vorgezogen, nachdem zusätzlich eine kritische Schwachstelle in einer Upstream-Abhängigkeit entdeckt worden war.

Auch Juli-Patches reichen nicht aus

Der August-Release ist bereits das zweite Update im neuen monatlichen Sicherheitsprogramm von Vercel. Das erste geplante Paket erschien im Juli und beseitigte neun Schwachstellen, darunter Denial-of-Service-, Server-Side-Request-Forgery- und Middleware-Bypass-Probleme.

Wer diese Juli-Versionen bereits installiert hat, ist gegen die nun veröffentlichten Schwachstellen jedoch nicht automatisch geschützt. Auch diese Systeme müssen auf 15.5.24 beziehungsweise 16.3.3 aktualisiert werden. Dass Betreiber kritische Next.js– und React-Lücken nicht lange offenlassen sollten, zeigte bereits React2Shell Ende 2025. Die Deserialisierungsschwachstelle in React Server Components erreichte einen CVSS-Wert von 10,0 und wurde kurz nach ihrer Veröffentlichung aktiv angegriffen.

Für die beiden aktuellen August-Lücken waren bis zum 27. August 2026 keine aktiven Angriffe bekannt. Betreiber sollten daraus jedoch keine Entwarnung ableiten. Für selbst gehostete Instanzen ist das Update derzeit die wichtigste Schutzmaßnahme. Anwendungen, die unmittelbar auf Vercel betrieben werden, sind nach Angaben des Unternehmens bereits gegen beide Schwachstellen abgesichert.