Nextcloud 35.0.0 — 캘린더 편집 공유자가 소유자의 캘린더를 인증되지 않은 URL로 게시할 수 있음
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · nextcloud-calendar-sharee-publish
Nextcloud Server 35.0.0 - Nextcloud GmbH
CalDAV PublishPlugin는 {DAV:}write만 확인합니다. 소유자 제한 limitAddressBookAndCalendarSharingToOwner는 기본값이 no입니다. 캘린더에 편집 권한을 부여한 동료가 캘린더를 공개할 수 있습니다. 비밀 URL을 가진 사람은 로그인 없이 귀하의 비 PRIVATE 이벤트를 읽을 수 있습니다.
캘린더에 대한 편집 권한을 가진 악의적인 행위자는 캘린더를 공개 URL로 만들 수 있습니다. 해당 URL을 가진 사람은 로그인 없이 귀하의 회의와 참석자를 읽을 수 있습니다.
| ID | 아직 CVE 없음 |
| CWE | CWE-284, CWE-862 |
| CVSS | High: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| 제품 | Nextcloud Server |
| 영향받는 버전 | 35.0.0 (da02f41) 공식 nextcloud:35.0.0-apache |
| 인증 | write-sharee, 이후 인증 없는 공개 읽기 |
| 라이선스 | GNU Affero GPL v3.0 |
| 랩 | 127.0.0.1 전용 |
동료에게 캘린더를 편집 가능으로 공유합니다. 그 동료가 publish-calendar를 게시합니다. Nextcloud가 공개 캘린더 URL을 생성합니다.
그러면:
PRIVATE 객체)캘린더의 재공유는 금지되어 있습니다. 공개는 그렇지 않습니다. 소유자 제한 설정은 존재하며 기본적으로 꺼져 있습니다.
PublishPlugin은 {DAV:}write를 확인한 다음, dav / limitAddressBookAndCalendarSharingToOwner를 확인하는데, 이는 기본값이 no입니다. Calendar::updateShares는 isShared()일 때 재공유를 금지합니다. 공개는 다른 동사입니다. 쓰기 ACL은 여전히 편집 공유자에게 {DAV:}write를 부여합니다.
공식 nextcloud:35.0.0-apache를 구동했습니다. 소유자 캘린더 labcal에 비 PRIVATE 이벤트 SUMMARY NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS를 두었습니다.
먼저 MKCALENDAR를 보냈습니다. Sabre가 405 MethodNotAllowed를 반환했습니다. 그래도 VEVENT를 PUT했습니다. 201. 캘린더가 있었습니다. 컬렉션 생성 동사가 잘못된 문이었지, 잘못된 집이 아니었습니다.
sharee에게 읽기-쓰기로 공유했습니다. Sharee가 POST CS:publish-calendar를 보내 202를 받았습니다. 공개 URL에 대한 인증 없는 PROPFIND에 witness가 포함되어 있었습니다.
cd lab
./run.sh
오직 http://127.0.0.1:18344만 대상으로 합니다.
SUCCESS NEXTCLOUD-CAL-SHAREE-PUBLISH who=write-sharee unauth-read=yes NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS
공개에 소유자 principal을 요구하거나, 소유자 제한을 기본적으로 켜고 isShared() 캘린더에 대한 공개를 여전히 거부해야 합니다. 재공유는 이미 금지되어 있습니다. 공개도 그에 따라야 합니다.
GNU Affero GPL v3.0. LICENSE를 참조하세요. 루프백 랩 전용. 보증 없음.