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
815 giorni faNon ancora revisionato

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} consente a un admin Users delegato di modificare un target a meno che quel target non sia nel gruppo locale admin. PATCH sullo stesso percorso usa correttamente isAdmin(). Gli admin promossi via LDAP hanno isAdmin()===true e spesso non sono in quel gruppo locale.

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

IDnessuna CVE al momento
CWECWE-863
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (admin Users delegato, non admin dell'istanza)
ProdottoNextcloud Server
Affetto35.0.0 (da02f41) nextcloud:35.0.0-apache ufficiale più user_ldap
Authadmin Users delegato vs admin promosso via 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 admin dell'istanza (occ ldap:promote-group). Quelle persone sono veri admin (isAdmin()===true) ma potrebbero non trovarsi nel gruppo locale di Nextcloud chiamato admin.

Hai anche assegnato a qualcuno il ruolo nelle impostazioni Users (helpdesk). Non è un admin completo dell'istanza.

Quell'utente helpdesk può:

  • Modificare la quota dell'admin promosso via LDAP (lab: PUT 200, PATCH 403)
  • Disabilitare o eliminare quell'admin (stesso gate isInGroup su enable/disable/delete/wipe)
  • Reimpostare la password se il backend LDAP consente canChangePassword() (spesso falso; non farci affidamento)

Non possono farlo a qualcuno che è effettivamente nel gruppo locale admin. Non possono farlo su un sito senza admin promossi via LDAP. La più sicura API PATCH 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 admin".

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 admin 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 è Users delegato, non admin 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

Target 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

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


Riferimenti

  • github.com/nextcloud/server tag v35.0.0
  • Promozione LDAP: 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 su loopback. Nessuna garanzia.

Scarica lo strumento