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
24vor 8 TagenNoch nicht geprüft

Abraxas Labs - nextcloud-ldap-put-isadmin

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

Write-up: https://abraxaslabs.tech/research/nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud Server 35.0.0 - Nextcloud GmbH

PUT /cloud/users/{id} erlaubt einem delegierten Benutzeradministrator, ein Zielkonto zu bearbeiten, sofern dieses Zielkonto nicht in der lokalen Gruppe admin ist. PATCH auf demselben Pfad verwendet korrekt isAdmin(). Über LDAP hochgestufte Administratoren haben isAdmin()===true und sind oft nicht in dieser lokalen Gruppe.

Ein böswilliger Akteur mit der helpdesk-artigen Benutzerrolle kann einen echten, über LDAP hochgestuften Instanzadministrator deaktivieren, per Quota sperren oder löschen. Die neuere PATCH-API verweigert dies korrekt. Der ältere PUT-Pfad tut es 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 Benutzeradministrator, kein Instanzadministrator)
ProduktNextcloud Server
Betroffen35.0.0 (da02f41) offizielles nextcloud:35.0.0-apache plus user_ldap
Authdelegierter Benutzeradministrator vs. über 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 Instanzadministrator 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 Einstellungsrolle Benutzer (Helpdesk) gegeben. Diese Person ist kein vollständiger Instanzadministrator.

Dieser Helpdesk-Benutzer kann:

  • Das Quota des über LDAP hochgestuften Administrators ändern (Lab: PUT 200, PATCH 403)
  • Diesen Administrator deaktivieren oder löschen (dieselbe isInGroup-Prüfung bei Aktivieren/Deaktivieren/Löschen/Wipe)
  • Das Passwort zurücksetzen, sofern 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 über LDAP hochgestufte Administratoren tun. Die sicherere PATCH-API kennt den Unterschied bereits.


Wie ich es gefunden habe

Die Bereitstellung hat zwei Editoren für denselben Benutzer. UsersController::editUser ist PUT. editUserMultiField ist PATCH. Dieselbe Datei. Benachbarte Methoden. Zwei unterschiedliche 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 Instanzadministrator, 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 Benutzeradministrator, kein Instanzadministrator.

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

Nur http://127.0.0.1:18342 anvisieren (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

Die Behebung

Verwende isAdmin($target) bei PUT/disable/delete/wipe auf dieselbe Weise, wie es PATCH 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