ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
يُعد تطبيق 3D Viewer لـ Nextcloud تطبيقاً شاملاً لعرض النماذج ثلاثية الأبعاد لـ Nextcloud ويدعم تنسيقات ملفات ثلاثية الأبعاد متعددة. في الإصدارات من 1.7.9 حتى 3.3.1، لم تُجرِ نقطة نهاية الملفات العامة للتطبيق أي تفويض للمشاركة. يمكن لأي شخص يعرف رمز المشاركة قراءة محتويات الملف المُشارَك حتى عندما كان رابط المشاركة محميًا بكلمة مرور. قامت `PublicFileController` بتوسيع `OCP\AppFramework\Controller` ووسمت مساراتها بـ `#[PublicPage]`. يفرض Nextcloud كلمات مرور المشاركة فقط من خلال `PublicShareMiddleware`، والذي يعود مبكرًا لأي متحكم ليس مثيلًا لـ `OCP\AppFramework\PublicShareController`، لذا لم يتم تشغيل أي فحص لكلمة المرور أو انتهاء الصلاحية أو نوع المشاركة لهذه المسارات. أدى `ShareFileService::loadLinkShare()` إلى تفاقم ذلك من خلال معاملة أي رمز طابقه `getShareByToken()` على أنه مصرح به. رمز المشاركة هو جزء عنوان URL الذي يلصقه الأشخاص في المحادثات والبريد الإلكتروني والتذاكر. توجد حماية كلمة المرور خصيصًا للحالة التي لا يجب أن يمنح فيها الاحتفاظ بالرمز الوصول بمفرده، ولم يثبت هذا الضمان. أعادت الطلبات إلى `GET /ocs/v2.php/apps/threedviewer/public/file/{token}/{fileId}` الرمز `200` مع نص الملف الكامل للمشاركات المحمية بكلمة مرور، ودون كلمة مرور ودون جلسة. قامت صفحة المشاركة الخاصة بـ Nextcloud بإعادة توجيه هذه الطلبات بشكل صحيح إلى موجه كلمة المرور. النطاق مقصور على الملفات بتنسيقات يتعامل معها هذا التطبيق (STL و GLB/glTF و OBJ و STEP و IFC وأنواع ثلاثية الأبعاد أخرى مدعومة). لا تتأثر الملفات غير ثلاثية الأبعاد في نفس المشاركة. أعادت المشاركات منتهية الصلاحية الرمز `500` بدلاً من تسريب المحتويات. تم حل هذه المشكلة في 3.3.2. يقوم `PublicFileController` الآن بتوسيع `PublicShareController` وتطبيق `isValidToken()` و `isPasswordProtected()` و `getPasswordHash()`، وتفويض التحقق من كلمة المرور والرمز إلى الإطار واكتساب تقييد القوة الغاشمة. يرفض `ShareFileService::findValidLinkShare()` بالإضافة إلى ذلك أنواع المشاركة بخلاف الرابط والبريد الإلكتروني، ويرفض المشاركات منتهية الصلاحية، ويعامل `ShareNotFound` من مدير المشاركة على أنه لا توجد مشاركة.
المعالجة
المراجع
- مرجعhttps://github.com/maz1987in/3Dviewer-Nextcloud/commit/1b0ca86ff9a96b4e045cb379bc8b8c2fe05f2fae
- مرجعhttps://github.com/maz1987in/3Dviewer-Nextcloud/commit/2cfef0326afc56112b948b3fdf7e5c873fab4104
- مرجعhttps://github.com/maz1987in/3Dviewer-Nextcloud/releases/tag/v3.3.2
- مرجعhttps://github.com/maz1987in/3Dviewer-Nextcloud/security/advisories/GHSA-gjh8-x4wm-3cfj