Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
nextcloud-ldap-put-isadmin — Nextcloud 35.0.0 — um admin de Usuários delegado consegue editar via PUT um admin promovido por LDAP que o PATCH recusa corretamente | Kitploit
Ferramentas/GitHubGitHub/abraxas/nextcloud-ldap-put-isadmin
Autenticação e AutorizaçãoEscalada de PrivilégiosAnálise de VulnerabilidadesExploração de Aplicações WebSegurança WebTestes de PenetraçãoLabs e Prática
GitHub

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
abraxas/nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud 35.0.0 — um admin de Usuários delegado consegue editar via PUT um admin promovido por LDAP que o PATCH recusa corretamente

Ver Repositório
8há 15 diasAinda não revisado

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} permite que um administrador de Usuários delegado edite um alvo, a menos que esse alvo esteja no grupo local admin. PATCH no mesmo caminho usa corretamente isAdmin(). Administradores promovidos via LDAP têm isAdmin()===true e frequentemente não estão nesse grupo local.

Um ator malicioso com o cargo de Usuários no estilo helpdesk pode desativar, bloquear por cota ou excluir um verdadeiro administrador de instância promovido via LDAP. A API PATCH mais recente recusa corretamente. O caminho PUT mais antigo não.

IDainda sem CVE
CWECWE-863
CVSSAlto: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (administrador de Usuários delegado, não administrador de instância)
ProdutoNextcloud Server
Afetado35.0.0 (da02f41) oficial nextcloud:35.0.0-apache mais user_ldap
Autenticaçãoadministrador de Usuários delegado vs administrador promovido via LDAP
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

O que um atacante pode fazer

Em um site com LDAP, você promoveu um grupo LDAP a administrador de instância (occ ldap:promote-group). Essas pessoas são administradores reais (isAdmin()===true), mas podem não estar no grupo local do Nextcloud chamado admin.

Você também deu a alguém o cargo de configurações de Usuários (helpdesk). Essa pessoa não é um administrador de instância completo.

Esse usuário de helpdesk pode:

  • Alterar a cota do administrador promovido via LDAP (lab: PUT 200, PATCH 403)
  • Desativar ou excluir esse administrador (mesma verificação isInGroup em enable/disable/delete/wipe)
  • Redefinir a senha se o backend LDAP permitir canChangePassword() (frequentemente falso; não dependa disso)

Eles não podem fazer isso com alguém que esteja de fato no grupo local admin. Eles não podem fazer isso em um site sem administradores promovidos via LDAP. A API PATCH mais segura já sabe a diferença.


Como eu encontrei

O provisionamento tem dois editores para o mesmo usuário. UsersController::editUser é PUT. editUserMultiField é PATCH. Mesmo arquivo. Métodos adjacentes. Duas respostas diferentes para "esta pessoa é administradora."

PUT verifica isInGroup($target, 'admin'). PATCH verifica isAdmin($target). Manager::isAdmin() consulta o LDAP IIsAdmin e depois o grupo local. occ ldap:promote-group torna um grupo LDAP administrador de instância sem colocar esses uids no grupo local admin.

Eu montei o oficial nextcloud:35.0.0-apache mais osixia/openldap:1.5.0. Usuário LDAP ldapadmin no grupo promovido ncadmins: isAdmin()===true, não está no admin local. O helpdesk local é Usuários delegado, não administrador de instância.

Enviei PATCH primeiro. É a rota mais recente. Eu esperava que PUT correspondesse a ela. PATCH {"quota":"1 GB"} retornou 403. PUT key=quota&value=1 GB retornou 200. O GET então mostrou cota 1073741824.


Lab

cd lab
./run.sh

Alvo apenas http://127.0.0.1:18342 (OpenLDAP no DNS do 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

A correção

Use isAdmin($target) em PUT/disable/delete/wipe da mesma forma que PATCH já faz.


Referências

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

Licença

GNU Affero GPL v3.0. Veja LICENSE. Apenas lab em loopback. Sem garantia.

Baixar ferramenta