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
24há 8 diasAinda não revisado

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

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

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

O que um atacante pode fazer

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

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

Esse usuário de helpdesk pode:

  • Alterar a cota do admin promovido via LDAP (lab: PUT 200, PATCH 403)
  • Desativar ou excluir esse admin (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 realmente no grupo local admin. Eles não podem fazer isso em um site sem admins 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 é admin."

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 admin de instância sem colocar esses uids no grupo local admin.

Eu subi 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 admin 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. GET então mostrou cota 1073741824.


Lab

cd lab
./run.sh

Aponte apenas para 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
  • LDAP promote: occ ldap:promote-group (PR #41650)
  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null

Licença

GNU Affero GPL v3.0. Consulte LICENSE. Apenas laboratório loopback. Sem garantias.

Baixar ferramenta