Permission Bypass and IDOR in Duplicate Entry Action
Beschreibung
## Beschreibung Die "Duplicate"-Eingabeaktion überprüft nicht ordnungsgemäß, ob der Benutzer die Berechtigung hat, diese Aktion für die spezifischen Zielelemente durchzuführen. Selbst mit nur "Anzeigeeinträge" Berechtigung (wobei die Aktion "Duplicate" in der Benutzeroberfläche eingeschränkt ist), kann ein Benutzer diese Einschränkung umgehen, indem er eine direkte Anfrage sendet. Darüber hinaus ermöglicht diese Sicherheitsanfälligkeit das Duplizieren von **Einträgen anderer Benutzer** durch Angabe ihrer Eintrags-IDs. Da Entry-IDs inkrementell sind, kann ein Angreifer diese IDs trivial dazu zwingen, eingeschränkte Inhalte im gesamten System zu duplizieren und darauf zuzugreifen. ## Proof of Concept ### Voraussetzungen - Ein Benutzer mit "View Entries" Berechtigung in einem beliebigen Abschnitt. ### Schritte zum Reproduzieren 1. Melden Sie sich als Benutzer mit minimalen Berechtigungen an ("Einträge anzeigen"). 1. Identifizieren Sie die Ziel-Eingabe-ID (z. B. über Brute-Force '1' bis 'N'). 1. Senden Sie die folgende cURL-Anfrage: > Ersetzen Sie `craft.local`, ``, ``` und `6393` (was die Eintrags-ID ist): ```bash curl --path-as-is -i -s -k -X $'POST' -H $'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:146.0) Gecko/20100101 Firefox/146.0' -H $'Accept: application/json' -H $'Content-Type: application/json' -H $'X-CSRF-Token: '-H $'Content-Length: 216' -b $'' -data-binary $'{\"context\":\"index\",\"elementType\":\"craft\\\elements\\\\Entry\",\"source\""section:17da21e5-0cfe-41f5-8cd2-450a94 $'http://craft.local/index.php?p=admin%2Factions%2Felement-indexes%2Fperform-action' ``1 Beobachten Sie, dass ein neuer Eintrag mit dem Angreifer als Eigentümer erstellt wird, der vollen Zugriff auf den Inhalt gewährt. ## Referenzen https://github.com/craftcms/cms/commit/fb61a91357f5761c852400185ba931f51d82783d
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.17.0, 5.9.0.
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.