Race condition in Token Service potentially allows for token usage greater than the token limit
Beschreibung
Eine Time-of-Check-Time-of-Use (TOCTOU)-Rennbedingung existiert im Token-Validierungsdienst von Craft CMS für Token, die explizit eine begrenzte Nutzung festlegen. Die "getTokenRoute()" -Methode liest die Nutzungszahl eines Tokens, prüft, ob es sich innerhalb der Grenzen befindet, und aktualisiert dann die Datenbank in separaten nichtatomaren Operationen. Durch das senden von gleichzeitigen anfragen kann ein angreifer ein single-use-imitation-token mehrmals verwenden, bevor das datenbankupdate abgeschlossen ist. Damit dies funktioniert, müssen sie eine gültige url für benutzerkonten mit einem nicht abgelaufenen token über andere mittel erhalten und eine rassenbedingung ausnutzen, während sie etwaige ratenbegrenzende regeln umgehen. Damit es sich um eine Privilegeskalation handelt, muss die Identitäts-URL ein Token für ein Benutzerkonto mit mehr Berechtigungen als Ihr aktueller Benutzer enthalten. ## Referenzen https://github.com/craftcms/cms/commit/3e4afe18279951c024c64896aa2b93cda6d95fdf
Quellen & weiterführende Informationen
Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.
Was ist zur Behebung zu tun?
Auf eine behobene Version aktualisieren: 4.16.19, 5.8.23.
Empfohlene Schritte
- Betroffene Systeme identifizieren: Pixel & Tonic Craft CMS.
- Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
- Update/Rollout auf behobene Version vorbereiten und priorisiert einspielen.
- Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.
Übergangsmaßnahmen
- Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
- WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
- Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.