Authorization bypass in "entries/move-to-section" allows control panel user to move entries without section permissions
Beschreibung
### Zusammenfassung Ein authentifizierter Bedienfeldbenutzer mit nur accessCp kann Einträge über POST `/actions/entries/move-to-section` über Abschnitte verschieben, auch wenn er keine `saveEntries:{sectionUid}` Berechtigung für den Quell- oder Zielabschnitt hat. ### Details #### Root-Ursache-Analyse 1. actionMoveToSection akzeptiert sectionId und entryIds, lädt Einträge und iteriert: `Craft::$app->getEntries()->moveEntryToSection($entry, $section)`. 2. Der Endpunkt erzwingt keine Genehmigungsprüfungen pro Einreise oder pro Abschnitt. "moveEntryToSection()" erzwingt auch keine Autorisierung für aktuelle Benutzer. 4. Es gibt eine Berechtigungsprüfung in "actionMoveToSectionModalData" zum Erstellen von UI-Optionen, aber diese Überprüfung wird im eigentlichen Endpunkt nicht durchgesetzt. 5. Daher kann eine direkte POST-Anfrage die UI-Filterung umgehen und unbefugte Eingabebewegungen durchführen. ### Auswirkungen * Dies ist eine Autorisierungsumgehung, die nicht autorisierte Inhaltsänderungen ermöglicht. * Authentifizierte Benutzer mit niedrigen Privilegien können Einträge verschieben, die sie nicht verwalten können sollten, was die Integrität verletzt und möglicherweise die Routing- / Editorial-Kontrollen stört. ### Referenzen https://github.com/craftcms/cms/commit/3c1ab1c4445
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.9.14.
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.