Nextcloud 35.0.0 — um destinatário de compartilhamento com permissão de edição de calendário pode publicar o calendário do proprietário em uma URL não autenticada
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · nextcloud-calendar-sharee-publish
Nextcloud Server 35.0.0 - Nextcloud GmbH
O PublishPlugin do CalDAV verifica apenas {DAV:}write. O limite de proprietário limitAddressBookAndCalendarSharingToOwner tem como padrão no. Um colega a quem você concedeu edição em um calendário pode publicá-lo. Qualquer pessoa com a URL secreta lê seus eventos não-PRIVATE sem fazer login.
Um agente malicioso com permissão de edição no seu calendário pode transformá-lo em uma URL pública. Qualquer pessoa que tenha essa URL pode ler suas reuniões e participantes sem fazer login.
| ID | ainda sem CVE |
| CWE | CWE-284, CWE-862 |
| CVSS | Alto: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N |
| Produto | Nextcloud Server |
| Afetado | 35.0.0 (da02f41) oficial nextcloud:35.0.0-apache |
| Autenticação | write-sharee, depois leitura pública não autenticada |
| Licença | GNU Affero GPL v3.0 |
| Lab | apenas 127.0.0.1 |
Você compartilha um calendário com um colega como pode editar. Esse colega envia publish-calendar. O Nextcloud gera uma URL pública de calendário.
Então:
PRIVATE)O re-compartilhamento do calendário é proibido. A publicação não é. A configuração de limite de proprietário existe e está desativada por padrão.
O PublishPlugin verifica {DAV:}write, depois dav / limitAddressBookAndCalendarSharingToOwner, que tem como padrão no. Calendar::updateShares proíbe re-compartilhamento quando isShared(). Publicar é um verbo diferente. A ACL de escrita ainda concede {DAV:}write a um edit-sharee.
Eu subi o nextcloud:35.0.0-apache oficial. Calendário do proprietário labcal com um evento não-PRIVATE de SUMMARY NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS.
Primeiro enviei MKCALENDAR. O Sabre respondeu 405 MethodNotAllowed. Enviei o VEVENT com PUT mesmo assim. 201. O calendário estava lá. O verbo de criação de coleção era a porta errada, não a casa errada.
Compartilhado como leitura-escrita com sharee. O POST CS:publish-calendar do sharee retornou 202. O PROPFIND não autenticado na URL pública continha a testemunha.
cd lab
./run.sh
Alvo apenas http://127.0.0.1:18344.
SUCCESS NEXTCLOUD-CAL-SHAREE-PUBLISH who=write-sharee unauth-read=yes NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS
Exigir o principal do proprietário para publicar, ou ativar o limite de proprietário por padrão e ainda negar a publicação para calendários isShared(). O re-compartilhamento já é proibido. A publicação deveria seguir o mesmo caminho.
GNU Affero GPL v3.0. Veja LICENSE. Apenas lab em loopback. Sem garantia.