
إثبات مفهوم استغلال لـ CVE-2026-78159، وهو RCE غير مُصادَق عليه في إضافة The Events Calendar لـ WordPress عبر مصرف فئات أداة parse_array.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-78159
The Events Calendar 6.17.3 — stellarwp
إن إضافة The Events Calendar الخاصة بـ WordPress معرّضة لتنفيذ التعليمات البرمجية عن بُعد (Remote Code Execution) في جميع الإصدارات حتى الإصدار 6.17.3 ضمناً عبر الدالة parse_array. ويعود ذلك إلى عدم كفاية التحقق من خريطة 'classes' الخاصة بالودجت، مما يسمح بحمولة من نوع plain-array بتجاوز فحص الكائن is_safe_widget_instance() والوصول إلى نقطة استدعاء الدوال القابلة للاستدعاء في Element_Classes::parse_array(). وهذا يجعل من الممكن للمهاجمين غير المصادَّق عليهم تنفيذ تعليمات برمجية على الخادم. يتطلب الاستغلال أن يكون التعليقات مفعّلة على منشورات tribe_events في الموقع المستهدف، وأن يكون قد تم إرسال تعليق واحد على الأقل يحتوي على كتلة wp:legacy-widget مُصمَّمة، حيث يتم تفعيل سلسلة الهجوم عندما تعالج do_blocks() صفحة HTML للحدث الفردي بما في ذلك منطقة التعليقات.
| CVE | CVE-2026-78159 · CVE.org |
| CWE | CWE-94 |
| CVSS | حرج: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| المنتج | The Events Calendar |
| المتأثر | جميع الإصدارات حتى 6.17.3 (ضمناً) |
| المُرقَّع | 6.17.3.1 وما بعده |
| المصادقة | لا شيء (انظر خريطة المصدر) |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1 فقط · حزمة إفصاح للمورّد/العميل، وليست ماسحاً ضوئياً |
parse_array هي نقطة الوصول (sink)، وليست إجراء ajax action=. الاتصال عبر HTTP هو POST /wp-comments-post.php ثم GET لعنوان URL الخاص بمعاينة الإشراف. معرّف الودجت idBase هو tribe-widget-events-list، وليس events-list.
POST/wp-comments-post.phpGET /event/lab-event/ harvest comment_post_IDPOST /wp-comments-post.php comment=<!-- wp:legacy-widget {idBase tribe-widget-events-list, instance.encoded php-serialize-base64, instance.hash 0} /-->302 Location includes unapproved=COMMENT_ID&moderation-hash=wp_hash(comment_date_gmt)GET that Location: comments_template includes the unapproved commentTemplate_Bootstrap::get_v1_single_event_template_html do_blocks($html)Service_Provider::enable_rendering_widget_copied (render_block_data) unserialize allowed_classes false, is_safe_widget_instance rejects objects only, wp_hash the plain arrayrender_block_core_legacy_widget the_widget tribe-widget-events-listWidget_List setup_arguments array_merge instance (classes survives; setup_template_vars does not overwrite it)empty featured list -> widget-events-list.php else branch components/messages.phptec_classes($classes) -> Element_Classes::parse_array string key + is_callable value -> poc_witness_78159($results) echoes POCWitness78159يحتوي جسم HTTP الخاص بـ GET لمعاينة الإشراف على POCWitness78159. صفحة HTML عامة للحدث بدون هذه السلسلة ليست هي المقصودة. قد تُضيف debug.log أيضاً POCWitness78159.
افعل هذا أولاً: حدّث The Events Calendar إلى 6.17.3.1 أو أحدث (توصي Wordfence بـ 6.17.4.1 لتغطية CVE-2026-78006 أيضاً).
تحقق بعد الترقية
CVE-2026-78159-Abraxas-Labs.py مقابل البناء المُرقَّع: يجب ألا يظهر الشاهد المُعيَّن.إذا لم تتمكن من التحديث فوراً
استهدف فقط http://127.0.0.1:8088 (أو عنوان loopback الذي ربطته). لا توجّه هذا السكربت إلى الإنترنت.
python3 CVE-2026-78159-Abraxas-Labs.py
النجاح هو الشاهد المذكور أعلاه في جسم الاستجابة. صفحة HTML عامة بحالة 200 ليست هي المقصودة.
حزمة loopback المستخدمة لإعادة الإنتاج. صور رسمية ما لم يكن هناك Dockerfile في هذا المجلد يبني من المصدر.
cd lab
docker compose up --force-recreate
اربط شجرة المنتج المعرّضة بجانب Compose إذا كان ملف YAML يربط دليلاً محلياً (ملف zip للإضافة / وسم المصدر من جدول الإصدارات). لا تنشر شيئاً باستثناء 127.0.0.1.
# CVE-2026-78159 (structured records)
- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-78159`
- CWE: CWE-94
- published: 2026-09-12T08:16:24.377
## NVD description
The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 6.17.3 via the parse_array function. This is due to insufficient validation of the widget 'classes' map, allowing a plain-array payload to bypass the is_safe_widget_instance() object check and reach the callable-invocation sink in Element_Classes::parse_array(). This makes it possible for unauthenticated attackers to execute code on the server. Exploitation requires that the targeted site has comments enabled on tribe_events posts and that at least one comment containing a crafted wp:legacy-widget block has been submitted, as the attack chain is triggered when do_blocks() processes the single-event HTML including the comment area.
## MITRE description
The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 6.17.3 via the parse_array function. This is due to insufficient validation of the widget 'classes' map, allowing a plain-array payload to bypass the is_safe_widget_instance() object check and reach the callable-invocation sink in Element_Classes::parse_array(). This makes it possible for unauthenticated attackers to execute code on the server. Exploitation requires that the targeted site has comments enabled on tribe_events posts and that at least one comment containing a crafted wp:legacy-widget block has been submitted, as the attack chain is triggered when do_blocks() processes the single-event HTML including the comment area.
## Affected
- stellarwp The Events Calendar 0 affected
## References (JSON sources only)
- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/common/src/Tribe/Utils/Element_Classes.php#L211
- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/Tribe/Views/V2/Template_Bootstrap.php#L214
- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/Tribe/Views/V2/Widgets/Service_Provider.php#L279
- https://plugins.trac.wordpress.org/browser/the-events-calendar/tags/6.17.3/src/views/v2/components/messages.php#L30
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3667866%40the-events-calendar&new=3667866%40the-events-calendar
- https://plugins.trac.wordpress.org/changeset?reponame=&old=3667867%40the-events-calendar&new=3667867%40the-events-calendar
- https://www.wordfence.com/threat-intel/vulnerabilities/id/cc2ccfeb-6df6-4fee-96a5-94f8dd131f7c?source=cve
- https://github.com/advisories/GHSA-9c57-9fxg-8x9j
- https://nvd.nist.gov/vuln/detail/CVE-2026-78159
## GitHub advisory
The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all...
The The Events Calendar plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 6.17.3 via the parse_array function. This is due to insufficient validation of the widget 'classes' map, allowing a plain-array payload to bypass the is_safe_widget_instance() object check and reach the callable-invocation sink in Element_Classes::parse_array(). This makes it possible for unauthenticated attackers to execute code on the server. Exploitation requires that the targeted site has comments enabled on tribe_events posts and that at least one comment containing a crafted wp:legacy-widget block has been submitted, as the attack chain is triggered when do_blocks() processes the single-event HTML including the comment area.
حزمة الإفصاح هذه مرخّصة بموجب GNU Affero General Public License v3.0. انظر LICENSE.
هذه الحزمة مخصّصة للمورّد، ومالك الموقع، والمختبرات المُصرَّح لها. يتواصل السكربت مع 127.0.0.1. استخدامه ضد أنظمة لا تملكها غير مُصرَّح به من Abraxas Labs. لا ضمان.