Reports
BAJA[EXPOSICIÓN DE DATOS]#2380133

Nextcloud: la app de Android permitía guardar archivos compartidos con la descarga desactivada

En Nextcloud, desmarcar "Allow download" al compartir no bastaba: desde el visor de la app de Android, el destinatario podía guardar PDF, documentos y presentaciones, y reutilizar imágenes.

Resumen
Resumen en castellano de un reporte público, no una traducción literal. El código y los comandos se mantienen como en el original.

Resumen

Nextcloud deja compartir archivos con otro usuario y desmarcar la opción "Allow download" para que pueda verlos, pero no descargarlos. Esa restricción tenía una vía de escape en la app de Android: abriendo los archivos en su visor, el destinatario seguía teniendo a mano opciones para obtener una copia en su teléfono.

El fallo es un control de acceso incorrecto (Improper Access Control) y no afectaba a todos los formatos por igual. Las pruebas del investigador dieron este resultado:

  • PDF, .odt y .odp: se podían descargar desde el menú del visor.
  • Imágenes (.png, .jpg): se podían usar como fondo de pantalla, foto de perfil de WhatsApp o foto de contacto; como fondo de pantalla, el archivo queda guardado en la memoria interna.
  • .mp3, .mp4 y .txt: se abrían, pero no se podían descargar.
  • .md y .csv: no llegaban a abrirse; el visor se quedaba cargando y mostraba el error "Loading takes longer than expected".

El reporte figura con severidad baja y como resuelto, con recompensa de importe no público. Se envió el 19 de febrero de 2024 y se divulgó el 16 de enero de 2026.

Pasos de reproducción

  1. Como user1, en la aplicación "Files", crea una carpeta con archivos de varios formatos (PDF, .odt, .png, .odp...).
  2. Comparte la carpeta con user2 y desmarca "Allow download". Repite este paso una segunda vez, porque la primera vez que se desmarca la casilla el cambio no se aplica.
  3. Como user2, abre los archivos en la app de Android y prueba según el formato:
  • PDF: en el visor, abre el menú superior derecho, elige "Download as" y selecciona "PDF document" o "PDF document as...". Llega la notificación "Download completed" y el archivo se puede abrir y guardar en el teléfono.
  • .odp: el mismo procedimiento que con el PDF.
  • .odt: el mismo procedimiento, con la opción añadida de elegir ".epub".
  • Imagen (.png, .jpg): elige "Use the image as" y después "Wallpaper". El archivo queda guardado en la memoria interna, en una ubicación poco accesible. También se puede elegir como foto de perfil de WhatsApp o como foto de contacto.

En cambio, la exportación con "File" > "Save as" desde el visor de PDF y .odt no funcionaba: tras pedir un nombre de archivo y pulsar "Save", aparecía un icono de carga infinito que bloqueaba la interfaz.

Impacto

La persona con quien se comparte un archivo con la descarga desactivada podía quedarse con una copia, en contra de lo que había decidido su propietario. El reporte lo resume como filtración de documentos sensibles. El fallo exige que el archivo se haya compartido con esa cuenta, así que afecta a quien ya tiene permiso para verlo, no a terceros sin acceso.

Qué aprender de este caso

  • Cuando una plataforma ofrezca "ver sin descargar", revisa cada cliente por separado: en este caso la vía de escape estaba en la app de Android. Prueba los menús del visor como "Download as" y las opciones del sistema como "Use the image as".
  • Prueba con varios formatos, porque el comportamiento cambia de uno a otro: aquí PDF y documentos se descargaban, mientras que .mp3, .mp4 y .txt no.
  • Un permiso "sin descarga" debería comprobarse en el servidor y en cada punto que entregue o exporte el contenido, no solo ocultando un botón; las conversiones como "PDF document as..." o .odt a .epub son también formas de descarga.
  • Comprueba que una restricción realmente queda aplicada: si, como aquí, hay que desmarcar la casilla dos veces, el propietario puede creer que protegió un archivo que sigue sin restricción.