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.
Eine Sicherheitskorrektur bei der Cookie-Anmeldung
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 | Änderung | Worauf achten |
|---|---|---|
| Sicherheit | Hash-Prüfung im Recaller-Cookie | Auf 12.x zurückportiert: auch auf nicht migrierten Projekten anwenden |
| Queues | Clustersicherer Redis-Treiber, totalSize(), JobInterrupted | Worker vor der Produktion auf einem Redis-Cluster testen |
| Eloquent | lazy()/lazyById() respektieren limit()/offset() | Code prüfen, der sich auf das alte Verhalten verließ |
| Sessions | ArraySessionHandler::create_sid() für PHP-9.0-Konformität | Ohne 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.
