Nextcloud 35.0.0 — ein Kalender-Bearbeitungsfreigegebener kann den Kalender des Eigentümers unter einer nicht authentifizierten URL veröffentlichen
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · nextcloud-calendar-sharee-publish
Nextcloud Server 35.0.0 - Nextcloud GmbH
CalDAV PublishPlugin prüft nur {DAV:}write. Das Owner-Limit limitAddressBookAndCalendarSharingToOwner ist standardmäßig auf no. Ein Kollege, dem du Bearbeiten für einen Kalender gegeben hast, kann ihn veröffentlichen. Jeder mit der geheimen URL liest deine nicht-PRIVATE-Termine ohne Anmeldung.
Ein böswilliger Akteur mit Bearbeitungsrechten an deinem Kalender kann ihn in eine öffentliche URL verwandeln. Jeder, der diese URL hat, kann deine Meetings und Teilnehmer ohne Anmeldung lesen.
| ID | noch keine 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 |
| Produkt | Nextcloud Server |
| Betroffen | 35.0.0 (da02f41) offizielles nextcloud:35.0.0-apache |
| Auth | write-sharee, dann unauthentifizierter öffentlicher Lesezugriff |
| Lizenz | GNU Affero GPL v3.0 |
| Lab | nur 127.0.0.1 |
Du teilst einen Kalender mit einem Kollegen als kann bearbeiten. Dieser Kollege sendet publish-calendar. Nextcloud erzeugt eine öffentliche Kalender-URL.
Dann:
PRIVATE-Objekte)Das erneute Teilen des Kalenders ist verboten. Das Veröffentlichen nicht. Die Owner-Limit-Konfiguration existiert und ist standardmäßig aus.
PublishPlugin prüft {DAV:}write, dann dav / limitAddressBookAndCalendarSharingToOwner, was standardmäßig no ist. Calendar::updateShares verbietet Reshare, wenn isShared(). Publish ist ein anderes Verb. Die Write-ACL gewährt einem Edit-Sharee weiterhin {DAV:}write.
Ich habe das offizielle nextcloud:35.0.0-apache gestartet. Owner-Kalender labcal mit einem nicht-PRIVATE-Event SUMMARY NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS.
Zuerst habe ich MKCALENDAR gesendet. Sabre antwortete mit 405 MethodNotAllowed. Ich habe das VEVENT trotzdem per PUT gesendet. 201. Der Kalender war da. Das Collection-Create-Verb war die falsche Tür, nicht das falsche Haus.
Shared read-write an sharee. Sharee POST CS:publish-calendar gab 202 zurück. Unauth PROPFIND auf der öffentlichen URL enthielt den Witness.
cd lab
./run.sh
Ziel nur http://127.0.0.1:18344.
SUCCESS NEXTCLOUD-CAL-SHAREE-PUBLISH who=write-sharee unauth-read=yes NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS
Den Owner-Principal für Publish verlangen, oder das Owner-Limit standardmäßig aktivieren und Publish für isShared()-Kalender weiterhin verweigern. Reshare ist bereits verboten. Publish sollte dem folgen.
GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.