Nextcloud 35.0.0 — un destinataire avec droits de modification du calendrier peut publier le calendrier du propriétaire sur une URL non authentifiée
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · nextcloud-calendar-sharee-publish
Nextcloud Server 35.0.0 - Nextcloud GmbH
Le PublishPlugin CalDAV ne vérifie que {DAV:}write. La limite propriétaire limitAddressBookAndCalendarSharingToOwner est par défaut à no. Un collègue à qui vous avez donné le droit d'édition sur un calendrier peut le publier. Toute personne disposant de l'URL secrète lit vos événements non-PRIVATE sans connexion.
Un acteur malveillant disposant du droit d'édition sur votre calendrier peut le transformer en URL publique. Quiconque possède cette URL peut lire vos réunions et vos participants sans se connecter.
| ID | pas encore de CVE |
| CWE | CWE-284, CWE-862 |
| CVSS | Élevé : 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| Produit | Nextcloud Server |
| Affecté | 35.0.0 (da02f41) officiel nextcloud:35.0.0-apache |
| Auth | bénéficiaire d'un partage en écriture, puis lecture publique non authentifiée |
| Licence | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 uniquement |
Vous partagez un calendrier avec un collègue avec le droit peut modifier. Ce collègue envoie publish-calendar. Nextcloud génère une URL publique de calendrier.
Ensuite :
PRIVATE)Le repartage du calendrier est interdit. La publication ne l'est pas. La configuration de limite propriétaire existe et est désactivée par défaut.
PublishPlugin vérifie {DAV:}write, puis dav / limitAddressBookAndCalendarSharingToOwner, qui est par défaut à no. Calendar::updateShares interdit le repartage lorsque isShared(). La publication est un verbe différent. L'ACL d'écriture accorde toujours {DAV:}write à un bénéficiaire en édition.
J'ai déployé l'image officielle nextcloud:35.0.0-apache. Calendrier propriétaire labcal avec un événement non-PRIVATE dont le SUMMARY est NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS.
J'ai d'abord envoyé MKCALENDAR. Sabre a répondu 405 MethodNotAllowed. J'ai quand même fait un PUT du VEVENT. 201. Le calendrier était là. Le verbe de création de collection était la mauvaise porte, pas la mauvaise maison.
Partagé en lecture-écriture avec sharee. Le POST CS:publish-calendar du bénéficiaire a renvoyé 202. Un PROPFIND non authentifié sur l'URL publique contenait le témoin.
cd lab
./run.sh
Cible uniquement http://127.0.0.1:18344.
SUCCESS NEXTCLOUD-CAL-SHAREE-PUBLISH who=write-sharee unauth-read=yes NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS
Exiger le principal propriétaire pour la publication, ou activer par défaut la limite propriétaire et refuser malgré tout la publication pour les calendriers isShared(). Le repartage est déjà interdit. La publication devrait suivre.
GNU Affero GPL v3.0. Voir LICENSE. Lab en boucle locale uniquement. Aucune garantie.