Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-16540-SimplyScheduleAppointments — CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6 Nicht authentifizierte Offenlegung von Termindaten und Massenlöschung | Kitploit
Tools/GitHubGitHub/huseyn0vs/cve-2026-16540-simplyscheduleappointments
SchwachstellenanalyseWebanwendungs-ExploitationDatenexfiltrationInformationsbeschaffungPenetrationstestsFehlkonfiguration
GitHubhuseyn0vs/cve-2026-16540-simplyscheduleappointments

CVE-2026-16540-SimplyScheduleAppointments

CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6 Nicht authentifizierte Offenlegung von Termindaten und Massenlöschung

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
1vor 29 TagenNoch nicht geprüft

CVE-2026-16540 — Simply Schedule Appointments < 1.6.12.6

Unauthentifizierte Offenlegung von Termindaten und Massenlöschung über den purge-Endpunkt

FeldDetails
CVECVE-2026-16540
PluginSimply Schedule Appointments
Betroffene Versionen< 1.6.12.6
Behoben in1.6.12.6
Aktive Installationen~70.000
CVSS 3.16.5 (Medium) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
CWECWE-863 (Falsche Autorisierung)
OWASPA5: Fehlerhafte Zugriffskontrolle
WPVDBc3829294-c388-4151-9e25-a3eac7b1f1c6
ForscherSuleyman Huseynov (@huseyn0vs__)
Offengelegt2026-07-22

Zusammenfassung

Der REST-Endpunkt GET /wp-json/ssa/v1/appointments/purge in Simply Schedule Appointments wendet eine Autorisierungsprüfung (get_items_permissions_check) an, die ein id_token validiert, das den Besitz eines einzelnen Termins nachweist. Der Handler (purge_appointments()) ignoriert jedoch vollständig, zu welchem Termin der Token gehört, und operiert stattdessen auf allen Terminen der gesamten Website, die den angegebenen Bedingungen entsprechen.

Ein nicht authentifizierter Angreifer, der über das öffentliche Buchungsformular einen einzelnen Termin bucht, erhält ein id_token. Mit diesem Token kann der Angreifer:

  1. Personenbezogene Daten aller Termine auf der Website abrufen (Namen, E-Mails, Telefonnummern, Termindetails)
  2. Alle vergangenen, stornierten oder zukünftigen Termine dauerhaft löschen (nur Premium-Editionen für Löschung)

Die Löschung erstreckt sich kaskadenartig über 6 abhängige Datenbanktabellen in festgeschriebenen Transaktionen, ohne native Rückgängig-Funktion.


Ursachenanalyse

Datei: includes/class-appointment-model.php

Falsche Ressourcenautorisierung (CWE-863)

Die Berechtigungsprüfung und der Handler arbeiten in vollständig unterschiedlichen Bereichen:

root@kitploit:~
// Routenregistrierung
register_rest_route( $namespace, '/' . $base . '/purge', array(
    array(
        'methods'             => WP_REST_Server::READABLE,
        'callback'            => array( $this, 'purge_appointments' ),
        'permission_callback' => array( $this, 'get_items_permissions_check' ),
    ),
) );

Berechtigungsprüfung – validiert den Besitz EINES Termins über id_token:

root@kitploit:~
public function get_items_permissions_check( $request ) {
    // ...
    if ( true === $this->id_token_permissions_check( $request ) ) {
        return true;  // gewährt Zugriff, wenn der Aufrufer den Besitz eines Termins nachweist
    }
    // ...
}

Handler – ignoriert den Termin des Tokens und operiert websiteweit:

root@kitploit:~
public function purge_appointments( WP_REST_Request $request ) {
    $params = $request->get_params();

    // Keine Eingrenzung auf customer_id oder appointment_id – löscht ALLE passenden Termine
    if ( isset( $params['purge_past_appointments'] ) && 'true' === $params['purge_past_appointments'] ) {
        $conditions[] = $wpdb->prepare( 'end_date < %s', $date_modified_max->format( 'Y-m-d' ) );
    }

    $sql = 'SELECT * FROM ' . $this->get_table_name()
         . ' WHERE ' . implode( ' OR ', $conditions )
         . ' ORDER BY id ASC LIMIT 5000';

    $list = $wpdb->get_results( $sql, ARRAY_A );
    // Kaskadenlöschung über 6 Tabellen in festgeschriebenen Transaktionen
}

Das id_token ist ein HMAC-MD5, der aus der id und date_created eines einzelnen Termins abgeleitet wird. Der Besitz dieses Tokens beweist lediglich, dass der Aufrufer einen bestimmten Termin gebucht hat – es verleiht keinerlei websiteweite Berechtigung.


Angriffskette

root@kitploit:~
1. Angreifer besucht die Buchungsseite und bucht einen beliebigen kostenlosen Termin
   → erhält Bestätigungs-E-Mail mit: appointment_id + id_token

2. GET /wp-json/ssa/v1/appointments/purge
     ?id=<appointment_id>
     &token=<id_token>
     &purge_past_appointments=true

3. Berechtigungsprüfung besteht (gültiger Token für den eigenen Termin des Angreifers)

4. Handler wählt ALLE vergangenen Termine websiteweit aus → gibt PII in der Antwort zurück
   → löscht sie dauerhaft über 6 Tabellen (bei Premium-Editionen)

Proof of Concept

Der PoC wird am 2026-08-05 veröffentlicht nach dem Embargo der koordinierten Offenlegung.

Siehe Verzeichnis poc/ nach dem Embargo-Datum.


Auswirkungen

SzenarioErgebnis
DatenoffenlegungNamen, E-Mails, Telefonnummern, Termindetails aller Kunden
Massenlöschung (Premium)Alle historischen/zukünftigen Termine dauerhaft über 6 Tabellen gelöscht
Keine WiederherstellungsmöglichkeitErfordert vollständige Datenbank-Wiederherstellung aus Backup

Offenlegungszeitplan

DatumEreignis
2026-07-10Schwachstelle entdeckt
2026-07-10An WPScan gemeldet
2026-07-22CVE-2026-16540 zugewiesen

Referenzen

  • WPScan-Hinweis
  • WordPress-Plugin-Seite
  • CWE-863: Falsche Autorisierung
  • OWASP A5: Fehlerhafte Zugriffskontrolle
Tool herunterladen
2026-07-22Öffentliche Offenlegung auf WPScan
2026-08-05PoC veröffentlicht