Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-89274-wp-recipe-maker-poc — مختبر تحقق Docker و Python PoC لـ CVE-2026-89274، يثبت تنفيذ shortcode عشوائي في WP Recipe Maker <= 10.8.1 عبر rating-comment reviewBody. | Kitploit
أدوات/GitHubGitHub/hassham1/cve-2026-89274-wp-recipe-maker-poc
ماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالمحاكاة الافتراضية للأمانأمن الويباختبار الاختراقمختبرات وتدريب عملي
GitHub
hassham1/cve-2026-89274-wp-recipe-maker-poc

CVE-2026-89274-wp-recipe-maker-poc

مختبر تحقق Docker و Python PoC لـ CVE-2026-89274، يثبت تنفيذ shortcode عشوائي في WP Recipe Maker <= 10.8.1 عبر rating-comment reviewBody.

عرض المستودع
8منذ 2 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-89274 - مختبر التحقق من تنفيذ الشورت كود التعسفي في WP Recipe Maker

مواد بحث أمني لإعادة إنتاج والتحقق من CVE-2026-89274: يقوم WP Recipe Maker <= 10.8.1 بتنفيذ شورت كودات ووردبريس المسجلة التعسفية داخل بيانات JSON-LD الوصفية للوصفة، المزروعة عبر تعليق تقييم معتمد.

  • المتأثر: WP Recipe Maker <= 10.8.1
  • المُصلَّح: 10.8.2 (تم استبدال do_shortcode بـ do_shortcode_safe الذي يقتصر على الإزالة)
  • CVSS 3.1: 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) - CWE-94
  • المصادقة: لا شيء، لكن يجب أن يمر تعليق التقييم الخاص بالمهاجم عبر عتبة الموافقة على التعليقات في الموقع (موافقة تلقائية أو إجراء من المشرف) قبل أن يبدأ الشورت كود المحقون في التنفيذ عند تحميل الصفحات

استخدم فقط على الأنظمة التي تملكها أو المصرح لك صراحةً باختبارها. يقوم الـ PoC بنشر تعليق تقييم واحد يحتوي على شورت كود علامة مسجل في المختبر. لا يتم استخدام أي شورت كود مدمّر ولا يتم كتابة أي شيء على القرص.

الحكم

الحالة: مُثبت في المختبر المقدم.

WP Recipe Maker 10.8.1 (ووردبريس 7.1.2، نموذج بطاقة الوصفة الافتراضي):

root@kitploit:~
comment posted : "[cve89274]" + wprm-comment-rating=5 on the recipe's parent post
result         : JSON-LD on the rendered page contains
                 "reviewBody":"CVE89274-SHORTCODE-FIRED"
                 (marker shortcode executed server-side at render time)
10.8.2         : shortcode stripped, marker absent (patched negative control)

يوضح هذا التنفيذ من جانب الخادم لشورت كود مسجل تعسفي مع إخراج مضمّن في بيانات الصفحة الوصفية، مكشوف لكل زائر. لا يوضح تنفيذ التعليمات عن بُعد (RCE)؛ يعتمد التأثير على الشورت كودات المسجلة على الهدف (كشف المنشورات/البيانات الوصفية، الشورت كودات التي توفرها الإضافات ذات الآثار الجانبية).

السبب الجذري (تم التحقق منه مقابل إصلاح 10.8.2)

تقوم WPRM_Metadata::sanitize_metadata() بتعقيم كل حقل قياسي بشكل متكرر في مصفوفة البيانات الوصفية المنظمة للوصفة:

root@kitploit:~
// includes/public/class-wprm-metadata.php:553, WP Recipe Maker 10.8.1
$sanitized = strip_shortcodes( wp_strip_all_tags( do_shortcode( $metadata ) ) );

// 10.8.2
$sanitized = strip_shortcodes( wp_strip_all_tags( WPRM_Instacart::do_shortcode_safe( $metadata ) ) );

يقوم do_shortcode() بتنفيذ الشورت كود أولاً؛ غلاف strip_shortcodes() يزيل فقط الوسوم من الإخراج المنفذ بالفعل. أحد الحقول، reviewBody، يتم تعبئته حرفياً من comment_content للتعليقات المعتمدة التي تحمل قيمة وصفية wprm-comment-rating (class-wprm-metadata.php:1016)، يتم الاستعلام عنها مقابل المنشور الأب للوصفة (post_id => $recipe->parent_post_id()، السطر 973) - المنشور أو الصفحة التي يتم تضمين بطاقة الوصفة فيها.

البديل في 10.8.2، WPRM_Instacart::do_shortcode_safe() (class-wprm-instacart.php:501)، يحتفظ فقط بالمحتوى الداخلي ولا ينفذ شيئاً.

مسار الاستغلال (كما تم التحقق منه)

  1. استهدف المنشور الأب للوصفة (المنشور/الصفحة التي تضمّن [wprm-recipe]).
  2. أرسل تعليقاً عبر POST إلى /wp-comments-post.php مع الشورت كود في النص و wprm-comment-rating=5.
  3. يمر التعليق عبر عتبة الموافقة في الموقع (المختبر يوافق تلقائياً؛ على الأهداف الحقيقية: موافقة تلقائية أو مشرف).
  4. عند العرض التالي وكل عرض لاحق للصفحة الأب، يضمّن مُنشئ البيانات الوصفية التعليق في مصفوفة review الخاصة بـ JSON-LD، ويقوم sanitize_metadata() بتنفيذ الشورت كود. يحل إخراجه محل نص التعليق داخل reviewBody، مرئياً لكل زائر.

البدء السريع

المتطلبات: Docker مع Compose v2، Python 3.10+ على المضيف.

root@kitploit:~
./lab verify

يبني مختبر 10.8.1، يتطلب تفعيل العلامة، ثم يبني مختبر 10.8.2 ويتطلب غيابها. أزل كل شيء باستخدام ./lab reset.

الأدلة المتوقعة

الضابط القابل للاستغلال:

root@kitploit:~
[!!!] SHORTCODE EXECUTION CONFIRMED
  evidence: 'CVE89274-SHORTCODE-FIRED' present in the rendered recipe page
  context : ..."reviewBody":"CVE89274-SHORTCODE-FIRED","author":...
RESULT: VULNERABLE CONTROL CONFIRMED

الضابط المُصلَّح:

root@kitploit:~
[=] shortcode text present but NOT executed: output was stripped
RESULT: PATCHED CONTROL CONFIRMED

وجود العلامة في الصفحة فقط داخل التعليق المعروض (نص خام) لا يُقبل كدليل؛ يجب أن تظهر العلامة كمخرجات منفذة في البيانات الوصفية.

دورة حياة المختبر اليدوية

root@kitploit:~
./lab start vulnerable   # 10.8.1 lab on http://127.0.0.1:9482
./lab test               # assert marker fires
./lab start patched      # 10.8.2 lab
./lab test               # assert absence
./lab status
./lab reset

شغّل الـ PoC يدوياً (الافتراضي هو loopback؛ الأهداف الخارجية المصرح بها تحتاج إلى التجاوز الصريح):

root@kitploit:~
python3 poc/poc_cve_2026_89274.py --url http://127.0.0.1:9482 --post-id 5
python3 poc/poc_cve_2026_89274.py --url https://target.example \
  --allow-authorized-non-loopback [--insecure]

قالب nuclei (nuclei/cve-2026-89274.yaml) هو فحص إصدار فقط (وسم readme.txt المستقر <= 10.8.1). تتطلب السلسلة السلوكية إرسال تعليق بالإضافة إلى انتقال الموافقة، وهو أمر غير عملي للتعبير عنه في nuclei؛ يقوم PoC بلغة Python بتنفيذ التدفق الكامل.

الإصدارات المتأثرة والمختبرة

الإصدارالتقييم
WP Recipe Maker 10.8.1تم إعادة إنتاج تنفيذ الشورت كود من البداية إلى النهاية
WP Recipe Maker 10.8.2تم إعادة إنتاج الضابط السلبي المُصلَّح
WP Recipe Maker <= 10.8.0متأثر وفقاً للاستشارة؛ لم يُختبر بشكل فردي

هيكل المستودع

root@kitploit:~
.
├── .github/workflows/validate.yml
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── docker-compose.yml
├── lab
├── nuclei/
│   └── cve-2026-89274.yaml
└── poc/
    └── poc_cve_2026_89274.py

غير مُلتزم به: assets/ (ملفات zip الإضافات)، .lab-state، __pycache__/.

حدود التحقق

الادعاءالحالة
تنفيذ الشورت كود عبر reviewBody لتعليق التقييممُثبت (10.8.1)
إخراج التنفيذ مكشوف في JSON-LD المعروضمُثبت
الضابط السلبي المُصلَّح (10.8.2)مُثبت
التكوين الافتراضي (نوع منشور الوصفة الخاص + المنشور الأب)مُثبت (هذه هي طوبولوجيا المختبر)
تكوين نوع منشور الوصفة العاملم يُختبر
نقطة نهاية REST الخاصة بتقييم WPRM كمدخل بديللم يُختبر
التأثير بما يتجاوز إخراج الشورت كود المسجل (RCE)غير مُدّعى

المراجع

  • Wordfence: CVE-2026-89274
  • NVD entry
  • WP Recipe Maker plugin

حدود السلامة

شغّل هذا المستودع فقط على الأنظمة التي تملكها أو المصرح لك صراحةً باختبارها. يرفض مشغّل المختبر أي متغيرات غير vulnerable/patched، ويرفض الـ PoC الأهداف غير loopback ما لم يتم توفير --allow-authorized-non-loopback، ومنفذ Compose مرتبط بـ 127.0.0.1.

راجع SECURITY.md للتعامل مع الإفصاح. لا يتضمن هذا المستودع أهداف إنتاج، أو بيانات عملاء، أو رموز وصول، أو أدلة من أنظمة حقيقية.

الترخيص

MIT - راجع LICENSE.

تنزيل الأداة