Authorization bypass: view-only Categories user can modify category structure via structures/move-element
Beschreibung
Ein Benutzer des Bedienfelds, der nur über die Berechtigung viewCategories für eine Kategoriegruppe (und nicht saveCategories) verfügt, kann die Kategoriestruktur dieser Gruppe dauerhaft ändern – Neuordnung und Neueinstellung von Kategorien über die Aktion structures/move-element. Eine Lesezeitberechtigung, der ein Schreibendpunkt später vertraut. Für Kategorien wird das Flag structureEditable aus der Ansichtsberechtigung (`src/elements/Category.php:205`) anstelle der Speicherberechtigung berechnet (Einträge verwenden korrekt saveEntries — `src/elements/Entry.php:341`). Wenn der Nur-Lese-Kategorie-Index rendert, ruft `craft\base\Element::indexHtml()` `Craft::$app->getSession()->authorize('editStructure:') auf;` StructuresController autorisiert dann die Struktur-mutierende Aktion ausschließlich für diese Sitzung, ohne dass canSave erneut überprüft wird. Verifiziert auf Craft CMS 5.10.5. Gleiche Klasse wie die in 5.10.3 und 5.10.5 festgelegten Berechtigungsumgehungen mit mittlerem Schweregrad; dies ist eine eindeutige, ungepatchte Instanz. Auswirkungen Ein unterprivilegierter, authentifizierter Benutzer (nur in einer Kategoriegruppe angezeigt) kann die Anordnung der Geschwister und die Verschachtelung von Eltern/Kind der Kategorie-Taxonomie dauerhaft verändern. Da die URI einer Kategorie von ihrer Position in der Struktur (Vorfahren-Schnecken) abgeleitet wird, ändert das Verschieben einer Kategorie ihre URL und die URLs ihrer Nachkommen und kann alle Navigations- / Menüs, die aus dem Kategoriebaum erstellt wurden, beschädigen. Hierbei handelt es sich um ein Integritäts-/Zugriffskontrollproblem: Inhalte, die der Benutzer nicht ändern darf, werden geändert. Keine Auswirkungen auf die Vertraulichkeit und kein RCE; Umfang ist Inhalt / Taxonomie Integrität.
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.6.
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.
- Administrative Zugänge besonders absichern: MFA, Passwortrotation, Session-Invalidierung.