ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.
الملخص
إن ZTNET عبارة عن واجهة ويب ZeroTier لوحدات التحكم الخاصة مع دعم تعدد المستخدمين والمؤسسات. قبل الإصدار 0.8.0، يمكن لأي مستخدم منخفض الصلاحيات ومصادق عليه إلغاء تنشيط حساب آخر بشكل دائم، بما في ذلك المسؤول، من خلال طلب `POST /api /auth /user /invalidateUser`. في الملف `src /pages /api /auth /user /invalidateUser.ts`، يتحقق `getServerSession` فقط من وجود الجلسة ولا يقارن `session.user.id` بمعرف المستخدم `userId` المقدم من العميل. يؤدي توفير معرف المستخدم الخاص بالضحية `userId` و`deviceId` الذي لا يوجد له زوج مطابق في `UserDevice` إلى قيام المعالج بتعيين `isActive` للحساب المستهدف على false. يتم رفض تسجيل الدخول بعد ذلك بواسطة `src /server /auth.ts` مع الخطأ `account-expired`. يحتاج المهاجم فقط إلى حساب عادي مصادق عليه ومعرف المستخدم الخاص بالضحية، والذي يمكن الحصول عليه من قوائم الأعضاء، أو استجابات واجهة المستخدم، أو السجلات، أو بيانات التطبيق الوصفية الأخرى. يمكن أن يؤدي هذا إلى إغلاق المسؤولين، وتعطيل إدارة المؤسسة، وحرمان أي مستخدم مستهدف من الوصول. تم إصلاح هذه المشكلة في الإصدار 0.8.0.