
Apache OpenMeetings 9.1.0 - عالية - عن بُعد - بقايا صلاحيات - SOAP POST /user ينسخ UserDTO.rights بما في ذلك ADMIN
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · openmeetings-soap-user-rights
الفئة: صلاحية متبقية الوصول: عن بُعد
Apache OpenMeetings 9.1.0. يقوم SOAP POST /user/ بنسخ UserDTO.rights وسيُحدِّث بواسطة id. SOAP هو حساب تكامل نظام إدارة التعلم (LMS). من المفترض أن يبقى دون مستوى ADMIN. يقوم UserMapper بتنفيذ userDao.get(dto.getId()) ثم u.setRights(dto.getRights()). يضيف UserWebService.add صلاحيات ROOM/LOGIN/DASHBOARD ولا يزيل ADMIN أبدًا.
| المعرّف | لا يوجد CVE بعد |
| الفئة | صلاحية متبقية |
| الوصول | عن بُعد (SOAP SID) |
| CWE | CWE-269، CWE-280 |
| CVSS | عالٍ: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| المنتج | Apache OpenMeetings 9.1.0 |
| المصادقة | Right.SOAP (وليس ADMIN) |
| الترخيص | GNU Affero GPL v3.0 |
| المختبر | 127.0.0.1:18152 فقط |
| الطريقة | نقطة الوصول | الصلاحية |
|---|---|---|
SOAP POST /services/user/?sid= rights=["ADMIN"] | UserMapper.setRights + userDao.update | السلامة (مُثبتة مختبريًا): زرع ADMIN. المختبر: plantedadm الاسم الأول كشاهد، أعاد DELETE /user/3 كمستخدم مزروع 200 Deleted. كان DELETE الخاص بـ soaplab عبر SOAP فقط error.notallowed. |
نفس POST مع id موجود | userDao.get(dto.getId()) | السلامة (مُثبتة مختبريًا): استبدال بدمج المعرّف. المختبر: المستخدم 4 تسجيل الدخول mergeover مع ADMIN. |
مغلق: لا يزال DELETE /user/{id} يتطلب ADMIN. ROOM SID هو NO_PERMISSION عند الإضافة. تسجيل الواجهة الأمامية لا يأخذ مصفوفة صلاحيات.
cd lab
./run.sh
السطر الأخير: SUCCESS OPENMEETINGS-SOAP-RIGHTS-WITNESS
الإصلاح المقترح: تجاهل UserDTO.rights عند إضافة SOAP، أو اسمح فقط بـ LOGIN/ROOM/DASHBOARD. لا تُجرِ التحميل بواسطة المعرّف أبدًا عند الإضافة. أزل ADMIN/SOAP ما لم يكن المستدعي ADMIN.
Abraxas Labs - https://abraxaslabs.tech - https://github.com/abraxas - https://x.com/abraxas_null - [email protected]
البائع: [email protected]