Public registration inherits admin flag from deactivated admin accounts via missing guard
Beschreibung
'User::afterSave()' schreibt '$record->admin = $this->admin' bedingungslos, ohne Wache - während 'aktiv', 'pending', 'locked' und 'suspended' alle Change-Detection-Wächter haben, die auf nicht autorisierte Änderungen werfen. Bei `allowPublicRegistration=true` und `requireEmailVerification=false` kann sich ein Angreifer mit der E-Mail eines zuvor deaktivierten Administratorkontos registrieren. Der Registrierungspfad verwendet den inaktiven Benutzerdatensatz wieder (der "admin=true" von vor der Deaktivierung behält), und der fehlende Wächter erlaubt dem Administrator-Flag, in dem neu aktivierten Konto zu bleiben, was einem nicht authentifizierten Angreifer vollen Administratorzugriff gewährt. Jedes andere sicherheitssensible Benutzer-Flag hat einen Change-Detection-Schutz. „Admin nicht. Auswirkungen - Integrität/Vertraulichkeit/Verfügbarkeit: Der Angreifer erhält Administratorzugriff auf das Bedienfeld, die Benutzerverwaltung, Systemeinstellungen, Plugins und alle Inhalte. Wahrscheinlichkeit: Bei der Craft Team Edition ist nur `allowPublicRegistration=true` erforderlich (`requireEmailVerification` ist immer `false` im Team). Bei Pro werden sowohl `allowPublicRegistration=true` als auch `requireEmailVerification=false` benötigt (zwei nicht standardmäßige Einstellungen). - Nicht standardmäßige Konfiguration erforderlich, aber beide Einstellungen werden dokumentiert und in realen Bereitstellungen verwendet. ID des Berichts: 1539
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: 5.10.11.
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.