
كشف المعلومات الحساسة عبر المهام في LearnDash.
كشف معلومات حساسة عبر المهام في LearnDash. يمكن للزوار غير المصادَق عليهم تصفح وتنزيل المهام المرفوعة.
يمكن لأي شخص، بما في ذلك الزوار غير المصادَق عليهم، رؤية جميع مهام LearnDash المرفوعة. نظرًا لأن المهام عامة، يمكن لأي شخص يعرف هذه الثغرة قراءة المستندات المرفوعة (مما قد يؤدي إلى حوادث تتعلق باللائحة العامة لحماية البيانات (GDPR). يمكن استغلال الثغرة دون امتلاك حساب على الموقع.
LearnDash هو إضافة نظام إدارة تعلم (LMS) لمنصة WordPress.
تخزن الإصدارات المتأثرة من LearnDash (<=4.10.1) ملفات المهام المرفوعة في مجلدات دون حماية وصول. عندما يرفع المستخدم ملف مهمة، يضع LearnDash الملف في /wp-content/uploads/assignments/. يحتفظ الملف باسمه الأصلي، وإن كان اسمه مسبوقًا بمعرّف المنشور (post ID) الذي رُفع منه وبالطابع الزمني لنظام Unix.
لدى LearnDash ثلاث واجهات برمجة تطبيقات REST: /wp/v2/ و /ldlms/v1/ و /ldlms/v2/ (حاليًا في الإصدار التجريبي). جميع الواجهات، بما في ذلك واجهة الإصدار التجريبي، مفعّلة افتراضيًا. يمكن تعطيل واجهتي /ldlms/v1/ و /ldlms/v2/ لأنواع منشورات محددة باستخدام عامل التصفية learndash_rest_api_enabled (انظر class-ld-rest-api.php).
يمكن لأي شخص، بما في ذلك الزوار غير المصادَق عليهم، تنزيل أي ملف مهمة مرفوع بمجرد معرفة اسم الملف.
يضيف LearnDash طابعًا زمنيًا إلى اسم كل ملف مرفوع لجعل تخمين الاسم أصعب، لكن الطوابع الزمنية قابلة للاختراق بالقوة الغاشمة (brute-force). وللأسف، فإن الزائر غير المصادَق الذي يريد قراءة المهام المرفوعة لا يحتاج حتى إلى تخمين أسماء الملفات بالقوة الغاشمة. فالإصدارات المتأثرة من LearnDash (<=4.10.1) تنشر جميع المهام المقدمة للزوار غير المصادَق عليهم عبر واجهة REST. كل ما على الزائر فعله هو استدعاء نقطة النهاية الخاصة بـ sfwd-assignment عبر واجهة REST /wp/v2/. يتضمن الرد مسارات الملفات المرفوعة، ويمكن للزائر تنزيلها دون تسجيل الدخول.
https://example.com/wp-json/wp/v2/sfwd-assignment
صدر LearnDash 4.10.2 في 2024-01-08. عالج المشكلة المتعلقة بتسريب مسارات ملفات المهام عبر واجهة REST. واستمرت CVE-2024-1208 و CVE-2024-1210.
صدر LearnDash 4.10.3 في 2024-01-31. نقل موقع تخزين الملفات إلى مجلد محمي وأدخل روابط تنزيل ديناميكية لمنع الوصول غير المصرح به.
تعاملت LearnDash مع تقرير الثغرة بشكل جيد وعالجت الثغرة خلال نافذة الإفصاح المسؤول البالغة 90 يومًا.