Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nextcloud-ldap-put-isadmin — Nextcloud 35.0.0 — 위임된 Users 관리자가 LDAP로 승격된 관리자를 PUT으로 편집할 수 있으며, PATCH는 이를 올바르게 거부함 | Kitploit
도구/GitHubGitHub/abraxas/nextcloud-ldap-put-isadmin
Authentication & AuthorizationPrivilege EscalationVulnerability AnalysisWeb Application ExploitationWeb SecurityPenetration TestingLabs & Practice
GitHub

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
abraxas/nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud 35.0.0 — 위임된 Users 관리자가 LDAP로 승격된 관리자를 PUT으로 편집할 수 있으며, PATCH는 이를 올바르게 거부함

저장소 보기
248일 전아직 검토되지 않음

Abraxas Labs - nextcloud-ldap-put-isadmin

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

분석 문서: https://abraxaslabs.tech/research/nextcloud-ldap-put-isadmin

nextcloud-ldap-put-isadmin

Nextcloud Server 35.0.0 - Nextcloud GmbH

PUT /cloud/users/{id}는 위임된 Users 관리자가 대상 사용자를 편집할 수 있게 해주는데, 단 그 대상이 로컬 그룹 admin에 속해 있지 않은 경우에만 그렇습니다. 같은 경로의 PATCH는 isAdmin()을 올바르게 사용합니다. LDAP로 승격된 관리자는 isAdmin()===true이면서 해당 로컬 그룹에는 속하지 않는 경우가 많습니다.

헬프데스크 수준의 Users 권한을 가진 악의적인 행위자는 실제 LDAP로 승격된 인스턴스 관리자를 비활성화하거나, 할당량을 잠그거나, 삭제할 수 있습니다. 더 새로운 PATCH API는 이를 올바르게 거부합니다. 오래된 PUT 경로는 그렇지 않습니다.

ID아직 CVE 없음
CWECWE-863
CVSSHigh: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H (위임된 Users 관리자, 인스턴스 관리자 아님)
제품Nextcloud Server
영향 받는 버전35.0.0 (da02f41) 공식 nextcloud:35.0.0-apache 및 user_ldap
인증위임된 Users 관리자 대 LDAP로 승격된 관리자
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

LDAP 사이트에서 LDAP 그룹을 인스턴스 관리자로 승격했다고 가정합니다(occ ldap:promote-group). 해당 사용자들은 실제 관리자(isAdmin()===true)이지만, 로컬 Nextcloud 그룹 admin에는 속하지 않을 수 있습니다.

또한 누군가에게 Users 설정 권한(헬프데스크)을 부여했습니다. 이 사람은 완전한 인스턴스 관리자가 아닙니다.

이 헬프데스크 사용자는 다음을 할 수 있습니다:

  • LDAP로 승격된 관리자의 할당량 변경 (랩: PUT 200, PATCH 403)
  • 해당 관리자를 비활성화하거나 삭제 (활성화/비활성화/삭제/초기화에 동일한 isInGroup 게이트 적용)
  • LDAP 백엔드가 canChangePassword()를 허용하는 경우에만 비밀번호 재설정 (대개 false이므로 이에 의존하지 말 것)

로컬 admin 그룹에 실제로 속한 사용자에게는 이런 작업을 할 수 없습니다. LDAP로 승격된 관리자가 없는 사이트에서는 이런 작업을 할 수 없습니다. 더 안전한 PATCH API는 이미 그 차이를 구분합니다.


발견 경위

프로비저닝에는 동일한 사용자에 대한 두 개의 편집기가 있습니다. UsersController::editUser는 PUT입니다. editUserMultiField는 PATCH입니다. 같은 파일, 인접한 메서드입니다. "이 사람이 관리자인가"에 대한 두 가지 다른 답입니다.

PUT은 isInGroup($target, 'admin')을 확인합니다. PATCH는 isAdmin($target)을 확인합니다. Manager::isAdmin()은 LDAP IIsAdmin을 먼저 확인한 다음 로컬 그룹을 확인합니다. occ ldap:promote-group은 해당 uid들을 로컬 admin 그룹에 넣지 않고도 LDAP 그룹을 인스턴스 관리자로 만듭니다.

공식 nextcloud:35.0.0-apache와 osixia/openldap:1.5.0을 구동했습니다. 승격된 그룹 ncadmins에 속한 LDAP 사용자 ldapadmin은 isAdmin()===true이지만 로컬 admin에는 속하지 않습니다. 로컬 helpdesk는 위임된 Users 권한을 가지며 인스턴스 관리자가 아닙니다.

먼저 PATCH를 보냈습니다. 더 새로운 경로입니다. PUT도 이와 일치할 것이라 예상했습니다. PATCH {"quota":"1 GB"}는 403을 반환했습니다. PUT key=quota&value=1 GB는 200을 반환했습니다. 이후 GET은 할당량 1073741824를 보여주었습니다.


랩

cd lab
./run.sh

오직 http://127.0.0.1:18342만 대상으로 합니다 (compose DNS ldap:389의 OpenLDAP).

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

수정 방법

PATCH가 이미 사용하는 것과 동일한 방식으로 PUT/disable/delete/wipe에서 isAdmin($target)를 사용하세요.


참고 자료

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

라이선스

GNU Affero GPL v3.0. LICENSE를 참조하세요. 루프백 실습 환경 전용입니다. 보증은 제공되지 않습니다.

도구 다운로드