
أداة PoC بلغة python3 للثغرة CVE-2026-105030 في Kener 4.0.0 قبل 4.1.6، الكشف عن بيانات المراقبة المخفية عبر Dashboard API
يحتوي هذا المستودع على إثبات مفهوم صغير بلغة Python لاختبار مشكلة الكشف عن المعلومات (CWE-200) في نقاط نهاية المراقب العامة في Kener. وقت النشر، لم يتم تحديد أي إثبات مفهوم عام آخر.
إصدارات Kener المتأثرة هي من 4.0.0 حتى 4.1.5، وتم إصلاحها في 4.1.6
https://www.rapid7.com/db/vulnerabilities/cve-2026-105030/
ترتبط المشكلة بعمليات البحث عن المراقبين المعتمدة على الوسوم التي يمكن أن تكشف المراقبين المخفيين أو غير النشطين عندما لا يتم تصفية الاستعلام بشكل صحيح.
هذا الإثبات مخصص لـ:
لا تستخدم هذا الإثبات ضد أهداف غير مصرح بها
يوضح هذا الإثبات أن المراقب المخفي أو غير النشط قد يظل يُعاد من نقاط النهاية العامة عندما لا يفرض البحث تصفية مثل:
السلوك المُصحح هو أن هذه النقاط يجب أن تعيد 404 / لا تطابق للمراقبين المخفيين أو غير النشطين.
requestsتثبيت التبعيات:
python3 -m pip install requests
إذا كانت لديك صلاحية الوصول إلى قاعدة البيانات، فأنشئ مراقبًا لا ينبغي أن يكون مرئيًا للعامة.
بالنسبة إلى Postgres:
INSERT INTO monitors (
tag, name, description, status, is_hidden,
category_name, monitor_type, cron, default_status,
created_at, updated_at
) VALUES (
'internal-secret-monitor',
'Internal Secret Monitor',
'Hidden/inactive monitor used for PoC',
'INACTIVE',
'YES',
'Home',
'HTTP',
'* * * * *',
'UP',
NOW(),
NOW()
);
يمكنك أيضًا استخدام اسم وسم مختلف إذا لزم الأمر.
تأكد من أن السجل:
status = 'INACTIVE' أو غير نشط بأي شكل آخرis_hidden = 'YES'الآن شغّل سكربت PoC.
إذا كان التطبيق مصابًا بالثغرة، فقد تُرجع نقطة نهاية واحدة أو أكثر ما يلي:
يشير هذا إلى أن المراقب المخفي/غير النشط يتم كشفه عبر واجهة برمجة تطبيقات عامة.
مع التصفية المناسبة، يجب أن تكون الاستجابة بدلاً من ذلك:
هذا هو السلوك المتوقع بعد الإصلاح:
const monitors = await db.getMonitors({
tag,
status: GC.ACTIVE,
is_hidden: GC.NO,
});
المشكلة ليست مجرد سرية الوسم. المشكلة هي أن نقطة نهاية عامة يجب ألا تكشف أبدًا عن بيانات مراقب مخفي أو غير نشط. إذا تمكن المهاجم من معرفة وسم المراقب بأي وسيلة، فقد يتمكن من الوصول إلى:
لا يزال على المهاجم إيجاد الوسم بطريقة ما، عن طريق التخمين، أو القوة الغاشمة، أو بوسائل أخرى.
تحقق من أن:
تأكد من أن التطبيق يعمل محليًا وأن المنفذ مطابق:
BASE_URL=http://localhost:3000
استخدم عنوان URL الصحيح، على سبيل المثال:
BASE_URL=https://localhost:3000
استخدم هذا PoC فقط:
لا تشغّل هذا ضد أنظمة خارجية أو تابعة لجهات خارجية دون إذن.
يتحقق هذا PoC مما إذا كانت وسم المراقبة المخفي أو غير النشط لا يزال قابلاً للوصول عبر نقاط نهاية واجهة برمجة تطبيقات Kener العامة.