Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
nextcloud-ldap-put-isadmin — Nextcloud 35.0.0 — un admin Users delegato può modificare tramite PUT un admin promosso da LDAP che PATCH rifiuta correttamente | Kitploit
Strumenti/GitHubGitHub/abraxas/nextcloud-ldap-put-isadmin
Autenticazione e AutorizzazioneEscalation di PrivilegiAnalisi delle VulnerabilitàSfruttamento di Applicazioni WebSicurezza WebPenetration TestingLab e Pratica
GitHub

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
abraxas/nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud 35.0.0 — un admin Users delegato può modificare tramite PUT un admin promosso da LDAP che PATCH rifiuta correttamente

Vedi Repository
248 giorni faNon ancora revisionato

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} consente a un amministratore Utenti delegato di modificare un utente target a meno che tale target non appartenga al gruppo locale admin. PATCH sullo stesso percorso utilizza correttamente isAdmin(). Gli amministratori promossi tramite LDAP hanno isAdmin()===true e spesso non appartengono a quel gruppo locale.

Un malintenzionato con il ruolo Utenti in stile helpdesk può disabilitare, bloccare la quota o eliminare un vero amministratore dell'istanza promosso tramite LDAP. La più recente API PATCH rifiuta correttamente. Il percorso PUT più vecchio no.

IDnessuna CVE al momento
CWECWE-863
CVSSAlto: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (amministratore Utenti delegato, non amministratore dell'istanza)
ProdottoNextcloud Server
Affetto35.0.0 (da02f41) nextcloud:35.0.0-apache ufficiale più user_ldap
Authamministratore Utenti delegato vs amministratore promosso tramite LDAP
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Su un sito LDAP, hai promosso un gruppo LDAP ad amministratore dell'istanza (occ ldap:promote-group). Quelle persone sono veri amministratori (isAdmin()===true) ma potrebbero non trovarsi nel gruppo locale di Nextcloud chiamato admin.

Hai anche assegnato a qualcuno il ruolo delle impostazioni Utenti (helpdesk). Non è un amministratore completo dell'istanza.

Quell'utente helpdesk può:

  • Modificare la quota dell'amministratore promosso tramite LDAP (lab: PUT 200, PATCH 403)
  • Disabilitare o eliminare quell'amministratore (stesso controllo isInGroup su abilitazione/disabilitazione/eliminazione/wipe)
  • Reimpostare la password se il backend LDAP consente canChangePassword() (spesso falso; non farci affidamento)

Non possono farlo a qualcuno che appartiene effettivamente al gruppo locale admin. Non possono farlo su un sito senza amministratori promossi tramite LDAP. L'API PATCH più sicura conosce già la differenza.


Come l'ho trovato

Il provisioning ha due editor per lo stesso utente. UsersController::editUser è PUT. editUserMultiField è PATCH. Stesso file. Metodi adiacenti. Due risposte diverse alla domanda "questa persona è un amministratore".

PUT controlla isInGroup($target, 'admin'). PATCH controlla isAdmin($target). Manager::isAdmin() interroga LDAP IIsAdmin poi il gruppo locale. occ ldap:promote-group rende un gruppo LDAP amministratore dell'istanza senza inserire quegli uid nel gruppo locale admin.

Ho avviato nextcloud:35.0.0-apache ufficiale più osixia/openldap:1.5.0. Utente LDAP ldapadmin nel gruppo promosso ncadmins: isAdmin()===true, non nel gruppo locale admin. L'utente locale helpdesk è Utenti delegato, non amministratore dell'istanza.

Ho inviato prima PATCH. È la rotta più recente. Mi aspettavo che PUT la eguagliasse. PATCH {"quota":"1 GB"} ha restituito 403. PUT key=quota&value=1 GB ha restituito 200. GET ha poi mostrato la quota 1073741824.


Lab

cd lab
./run.sh

Prendi di mira solo http://127.0.0.1:18342 (OpenLDAP sul DNS compose 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

La correzione

Usa isAdmin($target) su PUT/disable/delete/wipe allo stesso modo in cui PATCH già fa.


Riferimenti

  • 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

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab in loopback. Nessuna garanzia.

Scarica lo strumento