
نظام إدارة المحتوى DifuseHQ Kalmia CMS الإصدار 0.2.0 عرضة لتعداد المستخدمين من خلال استجابات الخطأ المميزة في نقطة نهاية المصادقة /kal-api/auth/jwt/create.
معرّف CVE: CVE-2025-65899
المنتج: DifuseHQ Kalmia CMS
الإصدار المتأثر: 0.2.0
نوع الثغرة: تباين الاستجابة القابل للملاحظة (Observable Response Discrepancy)
الصلاحيات المطلوبة: لا شيء
تسمح للمهاجمين غير المصادَق عليهم بتعداد أسماء المستخدمين الصالحة، مما يتيح هجمات رشّ كلمات المرور المستهدفة (Password Spraying)، وحشو بيانات الاعتماد (Credential Stuffing)، واكتشاف الحسابات.
بانتظار موافقة مشرف المشروع - https://github.com/DifuseHQ/Kalmia/pull/34
يحتوي Kalmia CMS الإصدار 0.2.0 على ثغرة تعداد المستخدمين في آلية المصادقة الخاصة به. يُرجع التطبيق رسائل خطأ مختلفة للمستخدمين غير الصالحين (user_not_found) مقارنةً بالمستخدمين الصالحين الذين يستخدمون كلمات مرور غير صحيحة (invalid_password). يتيح هذا التباين القابل للملاحظة في الاستجابة للمهاجمين غير المصادَق عليهم تعداد أسماء المستخدمين الصالحة على النظام، وهو ما يمكن استغلاله في هجمات مستهدفة لاحقة مثل رشّ كلمات المرور أو الهندسة الاجتماعية.
/kal-api/auth/jwt/createيفشل نظام المصادقة في تطبيق استجابات خطأ متسقة، مما يكشف معلومات عن وجود حسابات المستخدمين من خلال رسائل خطأ مختلفة:
{"message": "user_not_found"}{"message": "invalid_password"}يتيح هذا الاختلاف في الاستجابات للمهاجمين التمييز بين حسابات المستخدمين غير الموجودة والصالحة.
يحاول المهاجم المصادقة باستخدام اسم مستخدم غير موجود ويلاحظ أن استجابة الخادم تُرجع User not found.
باستخدام Burp Suite لاعتراض طلب المصادقة وتحليله، يؤكد المهاجم أن الخادم يُرجع user_not_found لأسماء المستخدمين غير الصالحة، مما يشير إلى أن المستخدم غير موجود في النظام.
عند الاختبار باستخدام اسم مستخدم صالح ولكن كلمة مرور غير صحيحة، يلتقط Burp Suite استجابة الخادم التي تُظهر invalid_password، مما يؤكد أن اسم المستخدم موجود في النظام.
يكشف تحليل منطق المصادقة في الواجهة الخلفية عن التنفيذ المعيب الذي يُرجع رسائل خطأ مختلفة:
user_not_foundinvalid_passwordتخلق عملية التحقق التسلسلية هذه التباين القابل للملاحظة الذي يتيح تعداد المستخدمين.
يقوم سكربت cve-2025-65899.py بأتمتة عملية تعداد المستخدمين:
python cve-2025-65899.py <TARGET_URL> [OPTIONS]
url: عنوان URL الأساسي المستهدف لنظام Kalmia CMS (مطلوب)-u, --user: اسم مستخدم واحد لاختباره-p, --password: كلمة المرور المستخدمة للاختبار (مطلوبة)-w, --wordlist: ملف قائمة كلمات لتعداد المستخدمين بالجملة# Test if specific user exists
python cve-2025-65899.py http://target.com:2727 -u admin -p wrongpass
# Results:
# [+] Valid user: admin (if user exists)
# OR
# (no output if user doesn't exist)
# Enumerate users from wordlist
python cve-2025-65899.py http://target.com:2727 -w users.txt -p wrongpass
# Create a simple wordlist
echo -e "admin\nuser\nadministrator\ntest\nguest" > users.txt
إخلاء مسؤولية: تُقدَّم هذه المعلومات لأغراض تعليمية ودفاعية فقط. يتحمل المستخدمون مسؤولية ضمان حصولهم على التفويض المناسب قبل اختبار أي أنظمة.