Patching

Laravel TokenGuard Auth-Bypass: GHSA-f9x3-7vq9-cph6

Ein kritisches Laravel-Advisory mit öffentlichem Proof of Concept, aber nur manche Apps sind betroffen. Drei Prüfungen zeigen, ob Ihre dazugehört.

Kurz gesagt

Ihre App ist betroffen, wenn sie laravel/framework unter 12.68.0 bzw. 13.29.0 nutzt, einen Guard mit dem einfachen token-Treiber hat und die Nutzer in MySQL oder MariaDB speichert. Ein Angreifer kann sich dann ohne das API-Token als bestehender Nutzer anmelden. Führen Sie composer update laravel/framework aus. Die Fixes liegen seit 25. August 2026 auf Packagist. Wer seitdem aktualisiert hat, ist bereits geschützt.

Was schiefging

Der TokenGuard von Laravel schützt Routen hinter dem token-Treiber, meist auth:api. Vor dem Fix prüfte er nur, dass das übergebene Token nicht leer war, bevor er es an die Nutzerabfrage weitergab. Laut Advisory wird unter MySQL und MariaDB ein präparierter Wert, der kein String ist, dann falsch behandelt, und die Abfrage trifft einen unbeabsichtigten Nutzer, statt fehlzuschlagen. Der Fix weist Arrays und andere Nicht-Strings vor jeder Abfrage ab.

Laravel veröffentlichte das Advisory am 19. Oktober 2026 mit CVSS 9.2 und ohne CVE-Nummer. Hakai Security veröffentlichte einen Tag später eine Analyse und einen funktionierenden Proof of Concept.

Drei Prüfungen

# 1. Welche Framework-Version ist installiert?
composer show laravel/framework | grep versions

# 2. Nutzt ein Guard den einfachen token-Treiber?
grep -n "'driver' => 'token'" config/auth.php

# 3. Liegt die users-Tabelle in MySQL oder MariaDB?
grep -E '^DB_CONNECTION=' .env

Betroffen sind Sie nur, wenn alle drei zutreffen: eine betroffene Version, ein Guard mit dem token-Treiber und MySQL oder MariaDB. Das Advisory betrifft nur diesen Treiber. Sanctum und Passport registrieren eigene Treiber und werden nicht genannt. Viele Apps haben den alten api-Guard noch in config/auth.php, ohne ihn auf einer Route zu nutzen. Existiert der Guard, patchen Sie lieber, als Zeit mit dem Beweis zu verbringen, dass er ungenutzt ist.

Korrigierte Versionen

ZweigBetroffenBehoben inHinweise
13.xUnter 13.29.013.29.0Hakai fand den Fix bereits in 13.27.0
12.xUnter 12.68.012.68.0Im Advisory genannt
11.xAlle11.56.1Backport laut Hakai; im Advisory nicht genannt
10.x und älterAlleKeinerUpgraden oder vom Token-Treiber wechseln

Aktualisieren

composer update laravel/framework --with-dependencies
composer show laravel/framework | grep versions
php artisan config:clear && php artisan route:clear
# Queue-Worker und Octane neu starten, sie halten den alten Code geladen
php artisan queue:restart
php artisan octane:reload    # nur wenn Sie Octane nutzen

Lang laufende Prozesse behalten den alten Framework-Code, bis sie neu starten. Starten Sie deshalb nach dem Deployment Queue-Worker, Horizon, Octane und alles unter Supervisor neu.

Wenn der Token-Guard exponiert war

Gehen Sie davon aus, dass auf die API zugegriffen worden sein kann. Suchen Sie in den Webserver-Logs nach Requests auf Routen hinter dem Token-Guard, bei denen das Token in ungewöhnlicher Form ankam, etwa als Array in einem JSON-Body oder als wiederholte api_token[]-Parameter, gefolgt von erfolgreichen Antworten. Tauschen Sie danach die gespeicherten API-Tokens aus, denn alles, was ein Angreifer als Nutzer getan hat, geschah mit dessen Rechten.

Derselbe Forscher meldete ein zweites Advisory mittlerer Schwere, am selben Tag veröffentlicht, GHSA-5wcm-3v2w-8362: Ein Request an eine JSON:API-Ressource mit reinem Lesezugriff konnte eine verknüpfte Tabelle leeren. Dasselbe Update behebt es.

Stolperfallen

So wurde es geprüft. Am 21. Oktober 2026 haben wir das Laravel-Advisory auf GitHub gelesen und die Veröffentlichungsdaten von 11.56.1, 12.68.0, 13.27.0 und 13.29.0 über die Packagist-API bestätigt. Die Angaben zu 11.x und 13.27.0 stammen aus der Analyse von Hakai Security, nicht von Laravel. Nicht getestet: der Bypass selbst.

Quellen

  1. GHSA-f9x3-7vq9-cph6: Token-based API guard auth bypass, laravel/framework, 19. Oktober 2026
  2. GHSA-5wcm-3v2w-8362, laravel/framework
  3. GHSA-f9x3-7vq9-cph6: Authentication Bypass in Laravel TokenGuard, Hakai Security, Yokai Research
  4. Critical Token Guard Auth Bypass Fixed in Laravel 13.29 and 12.68, Laravel News
  5. laravel/framework, Packagist

Häufige Fragen

Was ist der Laravel TokenGuard Authentication Bypass?

GHSA-f9x3-7vq9-cph6 ist eine kritische Lücke im eingebauten TokenGuard von Laravel, der Klasse hinter dem token-Treiber. Unter MySQL oder MariaDB wird ein präparierter Wert, der kein String ist, bei der Abfrage falsch behandelt, sodass die Abfrage einen bestehenden Nutzer trifft, statt fehlzuschlagen. Ein nicht angemeldeter Angreifer kann dann auf allen Routen hinter dem Guard als dieser Nutzer handeln. Sie hat CVSS 9.2 und hatte bei Veröffentlichung am 19. Oktober 2026 keine CVE-Nummer.

Welche Laravel-Versionen beheben GHSA-f9x3-7vq9-cph6?

Das Advisory nennt laravel/framework 12.68.0 und 13.29.0 als korrigiert. Hakai Security fand den Fix in 13.27.0 und einen Backport in 11.56.1, den das Advisory nicht erwähnt. Alle erschienen am 25. August 2026, eine seitdem aktualisierte App ist also bereits geschützt. Laravel 10 und älter haben keinen Fix.

Betrifft der Laravel Token-Guard-Bypass Sanctum oder Passport?

Das Advisory betrifft nur den token-Treiber. Sanctum und Passport registrieren eigene Guard-Treiber und werden nicht genannt. Prüfen Sie config/auth.php auf einen Guard mit driver auf token.

Ist meine Laravel-App mit PostgreSQL betroffen?

Das Advisory nennt MySQL und MariaDB als die Datenbankkonfigurationen, unter denen der Bypass funktioniert. Aktualisieren Sie trotzdem, denn der Fix weist Tokens, die keine Strings sind, vor jeder Abfrage ab, und vielleicht wechseln Sie die Datenbank später.

Laravel auf Servern, die niemand im Blick hat?

Die kostenlose Prüfung kontrolliert Framework-Versionen, Queue-Worker und wie Updates in Produktion gelangen. Die Prüfung läuft auf Englisch. Preise (EN).

Kostenlose Serverprüfung