Nextcloud 35.0.0 — un usuario con permisos de edición del calendario puede publicar el calendario del propietario en una URL no autenticada
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · nextcloud-calendar-sharee-publish
Nextcloud Server 35.0.0 - Nextcloud GmbH
El PublishPlugin de CalDAV solo comprueba {DAV:}write. El límite del propietario limitAddressBookAndCalendarSharingToOwner es no por defecto. Un colega al que le diste edición sobre un calendario puede publicarlo. Cualquiera con la URL secreta lee tus eventos no PRIVATE sin iniciar sesión.
Un actor malicioso con permiso de edición sobre tu calendario puede convertirlo en una URL pública. Cualquiera que tenga esa URL puede leer tus reuniones y asistentes sin iniciar sesión.
| ID | sin CVE todavía |
| 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 |
| Producto | Nextcloud Server |
| Afectado | 35.0.0 (da02f41) oficial nextcloud:35.0.0-apache |
| Auth | write-sharee, luego lectura pública sin autenticación |
| Licencia | GNU Affero GPL v3.0 |
| Lab | solo 127.0.0.1 |
Compartes un calendario con un colega como can edit. Ese colega envía publish-calendar. Nextcloud genera una URL pública del calendario.
Entonces:
PRIVATE)Recompartir el calendario está prohibido. Publicar no. La configuración del límite del propietario existe y está desactivada por defecto.
PublishPlugin comprueba {DAV:}write, luego dav / limitAddressBookAndCalendarSharingToOwner, que por defecto es no. Calendar::updateShares prohíbe reshare cuando isShared(). Publicar es un verbo distinto. La ACL de escritura sigue otorgando {DAV:}write a un sharee con edición.
Levanté el oficial nextcloud:35.0.0-apache. Calendario del propietario labcal con un evento no PRIVATE con SUMMARY NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS.
Primero envié MKCALENDAR. Sabre respondió 405 MethodNotAllowed. De todos modos hice PUT del VEVENT. 201. El calendario estaba ahí. El verbo de creación de colección era la puerta equivocada, no la casa equivocada.
Compartido en lectura-escritura con sharee. El POST CS:publish-calendar del sharee devolvió 202. El PROPFIND sin autenticación sobre la URL pública contenía el testigo.
cd lab
./run.sh
Objetivo solo http://127.0.0.1:18344.
SUCCESS NEXTCLOUD-CAL-SHAREE-PUBLISH who=write-sharee unauth-read=yes NEXTCLOUD-CAL-SHAREE-PUBLISH-WITNESS
Requerir el principal del propietario para publicar, o activar por defecto el límite del propietario y aun así denegar la publicación para calendarios isShared(). Recompartir ya está prohibido. Publicar debería seguir lo mismo.
GNU Affero GPL v3.0. Ver LICENSE. Solo lab en loopback. Sin garantía.