Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
nextcloud-ldap-put-isadmin — Nextcloud 35.0.0 — delegierter Benutzer-Administrator kann einen LDAP-hochgestuften Administrator per PUT bearbeiten, was PATCH korrekt verweigert | Kitploit
Tools/GitHubGitHub/abraxas/nextcloud-ldap-put-isadmin
Authentifizierung & AutorisierungPrivilege EscalationSchwachstellenanalyseWebanwendungs-ExploitationWebsicherheitPenetrationstestsLabs & Praxis
GitHub

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
abraxas/nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud 35.0.0 — delegierter Benutzer-Administrator kann einen LDAP-hochgestuften Administrator per PUT bearbeiten, was PATCH korrekt verweigert

Repository anzeigen
8vor 15 TagenNoch nicht geprüft

Abraxas Labs - nextcloud-ldap-put-isadmin

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud Server 35.0.0 - Nextcloud GmbH

PUT /cloud/users/{id} erlaubt einem delegierten Benutzer-Administrator, ein Zielkonto zu bearbeiten, es sei denn, dieses Zielkonto befindet sich in der lokalen Gruppe admin. PATCH auf demselben Pfad verwendet korrekt isAdmin(). LDAP-hochgestufte Administratoren haben isAdmin()===true und sind oft nicht in dieser lokalen Gruppe.

Ein Angreifer mit der Helpdesk-artigen Benutzerverwaltungsrolle kann einen echten LDAP-hochgestuften Instanz-Administrator deaktivieren, per Quota sperren oder löschen. Die neuere PATCH-API verweigert dies korrekt. Der ältere PUT-Pfad tut dies nicht.

IDnoch keine CVE
CWECWE-863
CVSSHoch: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (delegierter Benutzer-Administrator, kein Instanz-Administrator)
ProduktNextcloud Server
Betroffen35.0.0 (da02f41) offizielles nextcloud:35.0.0-apache plus user_ldap
Authentifizierungdelegierter Benutzer-Administrator vs. LDAP-hochgestufter Administrator
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Auf einer LDAP-Site haben Sie eine LDAP-Gruppe zum Instanz-Administrator hochgestuft (occ ldap:promote-group). Diese Personen sind echte Administratoren (isAdmin()===true), aber sie befinden sich möglicherweise nicht in der lokalen Nextcloud-Gruppe namens admin.

Sie haben außerdem jemandem die Rolle Benutzer in den Einstellungen gegeben (Helpdesk). Diese Person ist kein vollwertiger Instanz-Administrator.

Dieser Helpdesk-Benutzer kann:

  • Quota ändern beim LDAP-hochgestuften Administrator (Lab: PUT 200, PATCH 403)
  • Diesen Administrator deaktivieren oder löschen (dieselbe isInGroup-Prüfung bei enable/disable/delete/wipe)
  • Passwort zurücksetzen, falls das LDAP-Backend canChangePassword() erlaubt (oft false; nicht darauf verlassen)

Sie können dies nicht bei jemandem tun, der tatsächlich in der lokalen Gruppe admin ist. Sie können dies nicht auf einer Site ohne LDAP-hochgestufte Administratoren tun. Die sicherere PATCH-API kennt den Unterschied bereits.


Wie ich es gefunden habe

Die Benutzerbereitstellung hat zwei Editoren für denselben Benutzer. UsersController::editUser ist PUT. editUserMultiField ist PATCH. Dieselbe Datei. Benachbarte Methoden. Zwei verschiedene Antworten auf die Frage „Ist diese Person ein Administrator?“

PUT prüft isInGroup($target, 'admin'). PATCH prüft isAdmin($target). Manager::isAdmin() fragt LDAP IIsAdmin und dann die lokale Gruppe. occ ldap:promote-group macht eine LDAP-Gruppe zum Instanz-Administrator, ohne diese uids in die lokale Gruppe admin aufzunehmen.

Ich habe das offizielle nextcloud:35.0.0-apache plus osixia/openldap:1.5.0 aufgesetzt. LDAP-Benutzer ldapadmin in der hochgestuften Gruppe ncadmins: isAdmin()===true, nicht in lokalem admin. Lokaler helpdesk ist delegierter Benutzer, kein Instanz-Administrator.

Ich habe zuerst PATCH gesendet. Das ist die neuere Route. Ich erwartete, dass PUT damit übereinstimmt. PATCH {"quota":"1 GB"} gab 403 zurück. PUT key=quota&value=1 GB gab 200 zurück. GET zeigte danach Quota 1073741824.


Lab

cd lab
./run.sh

Ziel nur http://127.0.0.1:18342 (OpenLDAP auf Compose-DNS ldap:389).

SUCCESS NEXTCLOUD-LDAP-PUT-ISADMIN who=delegated-users-admin target=ldapadmin put=200 patch=403 NEXTCLOUD-LDAP-PUT-ISADMIN-WITNESS
  • lab/docker-compose.yml
  • lab/Dockerfile
  • lab/run.sh
  • lab/ldap/50-seed.ldif
  • lab/fixture.php

Der Fix

Verwenden Sie isAdmin($target) bei PUT/disable/delete/wipe genauso, wie PATCH es bereits tut.


Referenzen

  • github.com/nextcloud/server Tag v35.0.0
  • LDAP-Promote: occ ldap:promote-group (PR #41650)
  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen