Zum Inhalt springen

Das Magazin für Web-Handwerker Mittwoch, 9. September 2026

Backend

Laravel 13.31 härtet die Cookie-Anmeldung und macht Redis-Queues clustersicher

Laravel 13.31.0, veröffentlicht am 8. September 2026, schließt eine Sicherheitslücke im „Angemeldet bleiben“-Cookie und macht Redis-Queues clustersicher. Die Version verfeinert außerdem Eloquent und behebt ein Speicherleck im HTTP-Client.

Laravel 13.31.0 ist seit dem 8. September 2026 verfügbar. Hinter einer kleinen Versionsnummer schließt diese Auslieferung eine Sicherheitslücke im „Angemeldet bleiben“-Cookie, macht Redis-Queues clustersicher und verfeinert mehrere Eloquent-Verhalten. Rund vierzig Korrekturen runden das Ganze ab, vom HTTP-Client bis zu den Migrationen.

Die heikelste Änderung betrifft den „Angemeldet bleiben“-Mechanismus. Laravel stellt nun sicher, dass der Passwort-Hash mit dem im Recaller-Cookie gespeicherten übereinstimmt, bevor die Nutzerin oder der Nutzer authentifiziert wird. Die zunächst auf den 12.x-Zweig zurückportierte Korrektur schließt ein Zeitfenster, in dem ein Recaller-Cookie nach einem Passwortwechsel weiter nutzbar bleiben konnte.

Im selben Bereich wurde ein TypeError behoben, der in userFromRecaller() auftrat, wenn das Cookie zu keinem Nutzer passte. Anwendungen, die stark auf dauerhafte Anmeldung setzen, sollten das Update zügig einspielen.

Clustersichere Redis-Queues

Der Redis-Queue-Treiber erhält eine clustersichere Implementierung: Die Operationen MULTI und KEYS werden überarbeitet, damit sie sich korrekt verhalten, wenn Schlüssel über mehrere Knoten verteilt sind. Auf Infrastrukturen, die Redis im Cluster-Modus betreiben, verschwindet damit eine Klasse schwer reproduzierbarer Fehler.

Zwei Ergänzungen begleiten diese Arbeit. Die Methode Queue::totalSize() gibt die Größe einer Queue aus, und ein neues Ereignis JobInterrupted wird ausgelöst, wenn ein Job unterbrochen wird. Das Ereignis WorkerStopping trägt nun Verbindungs- und Queue-Namen, wenn ein Worker beendet wird, was die Überwachung von Produktions-Workern erleichtert.

use Illuminate\Support\Facades\Queue;
use Illuminate\Queue\Events\JobInterrupted;
use Illuminate\Support\Facades\Event;

// Nouveau en 13.31 : lire la taille d'une file
$taille = Queue::totalSize('default');

// Reagir a l'interruption d'un job
Event::listen(function (JobInterrupted $event) {
    logger()->warning('Job interrompu', [
        'connexion' => $event->connectionName ?? null,
    ]);
});

Eloquent, Lazy-Abfragen und HTTP-Client

Auf ORM-Seite kommt die Chaperone-Unterstützung für die Pivot-Modelle von BelongsToMany-Beziehungen: Aus einer Pivot-Tabelle geladene Modelle behalten ihre Elternbeziehung ohne zusätzliche Abfrage und vermeiden so das klassische N+1-Problem. Auch der Geltungsbereich des an wherePivot() übergebenen Closures wurde korrigiert.

Zwei grundlegende Regressionen verschwinden. Die Methoden lazy() und lazyById() respektieren jetzt limit() und offset(), die sie zuvor ignorierten. Beim HTTP-Client wird ein Speicherleck behoben, und die RateLimited-Middleware blockiert nun tatsächlich Jobs, die das Limit erreichen.

Eine kleine Versionsnummer kann eine Sicherheitskorrektur enthalten: Ein Update ist keine kosmetische Maßnahme.

Update: worauf zu achten ist

13.31 bleibt im 13.x-Zweig: Das Update ist ein composer update, ohne Sprung auf eine neue Hauptversion. Die folgende Tabelle fasst die Änderungen zusammen, die man vor dem Deployment kennen sollte.

BereichÄnderungWorauf achten
SicherheitHash-Prüfung im Recaller-CookieAuf 12.x zurückportiert: auch auf nicht migrierten Projekten anwenden
QueuesClustersicherer Redis-Treiber, totalSize(), JobInterruptedWorker vor der Produktion auf einem Redis-Cluster testen
Eloquentlazy()/lazyById() respektieren limit()/offset()Code prüfen, der sich auf das alte Verhalten verließ
SessionsArraySessionHandler::create_sid() für PHP-9.0-KonformitätOhne unmittelbare Auswirkung, bereitet künftige Kompatibilität vor

Projekte, die noch auf 12.x sind, erhalten dieselbe zurückportierte Sicherheitskorrektur. Ihre Anwendung erfordert keine Migration auf 13.x: Ein einfaches composer update auf der 12.x-Beschränkung genügt, um den Patch zu holen.

Was man mitnehmen sollte

Laravel 13.31.0 ist ein Wartungsrelease, zugleich gewöhnlich und wichtig: gewöhnlich im Format, wichtig wegen seiner Sicherheitskorrektur bei der Cookie-Anmeldung und weil es Redis-Queues clustersicher macht. Teams, die „Angemeldet bleiben“ oder verteilte Worker nutzen, sollten es ohne Verzögerung ausrollen und die Queues zuvor in einer Staging-Umgebung testen.

In meinen eigenen Projekten behandle ich Laravel-Nebenversionen als potenzielle Sicherheitspatches, nie als bloße Zusatzoptionen: Ich lese das Changelog, sehe zuerst auf die Einträge „Security“ und „Authentication“ und spiele das Update dann über Staging aus. 13.31 bestätigt diese Gewohnheit — der Recaller-Cookie-Patch ist genau die Art Detail, das man übersieht, wenn man Nebenversionen auslässt. — Simon Janvier

Weiterführend: die vollständigen Release Notes zu Laravel 13.31.0 auf GitHub.

Teilen LinkedIn Bluesky Hacker News E-mail

Ebenfalls lesenswert