
Nextcloud 35.0.0 — प्रतिनिधित्व किए गए Users एडमिन एक LDAP-प्रोमोटेड एडमिन को PUT-एडिट कर सकते हैं जिसे PATCH सही ढंग से अस्वीकार करता है
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · nextcloud-ldap-put-isadmin
Nextcloud Server 35.0.0 - Nextcloud GmbH
PUT /cloud/users/{id} एक प्रतिनिधिक Users admin को लक्ष्य को संपादित करने देता है, जब तक कि वह लक्ष्य local समूह admin में न हो। उसी पथ पर PATCH सही ढंग से isAdmin() का उपयोग करता है। LDAP-प्रोमोटेड admins isAdmin()===true होते हैं और अक्सर उस local समूह में नहीं होते।
helpdesk-शैली के Users कार्य वाला एक दुर्भावनापूर्ण अभिनेता एक वास्तविक LDAP-प्रोमोटेड instance admin को अक्षम, quota-लॉक, या हटा सकता है। नया PATCH API सही ढंग से मना करता है। पुराना PUT पथ नहीं करता।
| ID | अभी तक कोई CVE नहीं |
| CWE | CWE-863 |
| CVSS | High: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (प्रतिनिधिक Users admin, instance admin नहीं) |
| Product | Nextcloud Server |
| Affected | 35.0.0 (da02f41) आधिकारिक nextcloud:35.0.0-apache के साथ user_ldap |
| Auth | प्रतिनिधिक Users admin बनाम LDAP-प्रोमोटेड admin |
| License | GNU Affero GPL v3.0 |
| Lab | केवल 127.0.0.1 |
एक LDAP साइट पर, आपने एक LDAP समूह को instance admin में प्रोमोट किया (occ ldap:promote-group)। वे लोग वास्तविक admins हैं (isAdmin()===true) लेकिन वे local Nextcloud समूह admin में नहीं हो सकते।
आपने किसी को Users सेटिंग्स कार्य (helpdesk) भी दिया। वे पूर्ण instance admin नहीं हैं।
वह helpdesk उपयोगकर्ता यह कर सकता है:
isInGroup गेट)canChangePassword() की अनुमति देता है (अक्सर false; इस पर निर्भर न रहें)वे यह उस व्यक्ति के साथ नहीं कर सकते जो वास्तव में local admin समूह में है। वे यह उस साइट पर नहीं कर सकते जहां कोई LDAP-प्रोमोटेड admins नहीं हैं। सुरक्षित PATCH API पहले से ही अंतर जानता है।
प्रोविजनिंग में एक ही उपयोगकर्ता के लिए दो संपादक हैं। UsersController::editUser PUT है। editUserMultiField PATCH है। एक ही फ़ाइल। आसन्न विधियाँ। "क्या यह व्यक्ति admin है" का दो अलग उत्तर।
PUT isInGroup($target, 'admin') की जाँच करता है। PATCH isAdmin($target) की जाँच करता है। Manager::isAdmin() पहले LDAP IIsAdmin फिर local समूह से पूछता है। occ ldap:promote-group एक LDAP समूह को instance-admin बनाता है बिना उन uids को local admin समूह में डाले।
मैंने आधिकारिक nextcloud:35.0.0-apache के साथ osixia/openldap:1.5.0 खड़ा किया। प्रोमोटेड समूह ncadmins में LDAP उपयोगकर्ता ldapadmin: isAdmin()===true, local admin में नहीं। Local helpdesk प्रतिनिधिक Users है, instance admin नहीं।
मैंने पहले PATCH भेजा। यह नया मार्ग है। मुझे उम्मीद थी कि PUT इससे मेल खाएगा। PATCH {"quota":"1 GB"} ने 403 लौटाया। PUT key=quota&value=1 GB ने 200 लौटाया। GET ने फिर quota 1073741824 दिखाया।
cd lab
./run.sh
लक्ष्य केवल http://127.0.0.1:18342 (compose DNS ldap:389 पर OpenLDAP)।
SUCCESS NEXTCLOUD-LDAP-PUT-ISADMIN who=delegated-users-admin target=ldapadmin put=200 patch=403 NEXTCLOUD-LDAP-PUT-ISADMIN-WITNESS
PUT/disable/delete/wipe पर isAdmin($target) का उपयोग उसी तरह करें जैसे PATCH पहले से करता है।
occ ldap:promote-group (PR #41650)GNU Affero GPL v3.0। देखें LICENSE। केवल लूपबैक lab। कोई वारंटी नहीं।