Angriffsvektor: Beliebige Ereignis-ID angeben, einschließlich privater oder Entwurfs-Beiträge
Auslöser: Ein authentifizierter Benutzer übergibt die Ziel-Ereignis-ID an die API/den Endpunkt
Auswirkungen: Offenlegung sensibler Details aus unveröffentlichten Ereignissen, die von einem Administrator erstellt wurden, einschließlich Titel, vollständiger Beschreibung, benutzerdefinierter Felder, Standort und Organisator-Informationen
PoC:
Melden Sie sich auf irgendeine Weise als Contributor an.
Erraten Sie die fortlaufende Ereignis-ID und sehen Sie private Informationen mithilfe des folgenden Shortcodes.[add_single_eventon id="xxxx"]
Das Ausführen der Vorschau führt zu einem Informationsverlust.
❓Grund für die Schwachstelle
Der Parameter post_type wird nicht ordnungsgemäß validiert, wodurch der Abruf ungewollter Beitragstypen einschließlich privater oder Entwurfs-Ereignisse ermöglicht wird.
Vorgeschlagener Fix:
Erlauben Sie explizit nur die zulässigen post_type-Werte, bevor Sie die Abfrage ausführen.
Wenden Sie geeignete Berechtigungsprüfungen wie current_user_can('read_private_ajde_events') für private Inhalte an.
Beschränken Sie post_status für Benutzer ohne die erforderlichen Berechtigungen auf publish.
Anmerkung
Erstes CVE meines Lebens. Da es vom Contributor aus angreifbar ist, ist der Schweregrad ziemlich gering. Der Fix ist sehr einfach, da nur der Status von Any auf Public geändert werden muss.