CVE-2026-104189 in 3Dviewer Nextcloudinformação

Sumário

de VulDB • 27/10/2026

O Visualizador 3D para Nextcloud é um aplicativo completo de visualização de modelos 3D para o Nextcloud que suporta múltiplos formatos de arquivos 3D. Nas versões 1.7.9 a 3.3.1, o endpoint público de arquivos do aplicativo não realizava nenhuma autorização de compartilhamento. Qualquer pessoa que conhecesse um token de compartilhamento poderia ler o conteúdo dos arquivos compartilhados mesmo quando o link de compartilhamento estava protegido por senha. `PublicFileController` estendia `OCP\AppFramework\Controller` e marcava suas rotas como `#[PublicPage]`. O Nextcloud aplica senhas de compartilhamento apenas através do `PublicShareMiddleware`, que retorna antecipadamente para qualquer controlador que não seja uma instância de `OCP\AppFramework\PublicShareController`; portanto, nenhuma verificação de senha, expiração ou tipo de compartilhamento era executada nessas rotas. O método `ShareFileService::loadLinkShare()` agravava esse problema ao tratar qualquer token correspondente a `getShareByToken()` como autorizado. Um token de compartilhamento é a parte da URL que as pessoas colam em chats, e-mails e tickets. A proteção por senha existe precisamente para o caso em que possuir o token não deveria, por si só, conceder acesso, e essa garantia não se mantinha. Solicitações `GET /ocs/v2.php/apps/threedviewer/public/file/{token}/{fileId}` retornavam `200` com o corpo completo do arquivo para compartilhamentos protegidos por senha, sem necessidade de senha ou sessão. A página de compartilhamento padrão do Nextcloud redirecionava corretamente essas solicitações para a tela de inserção da senha. O escopo é limitado aos arquivos nos formatos tratados pelo aplicativo (STL, GLB/glTF, OBJ, STEP, IFC e outros tipos 3D suportados). Arquivos não-3D no mesmo compartilhamento não são afetados. Compartilhamentos expirados retornavam `500` em vez de vazar o conteúdo. Este problema foi corrigido na versão 3.3.2. O `PublicFileController` agora estende `PublicShareController` e implementa `isValidToken()`, `isPasswordProtected()` e `getPasswordHash()`, delegando a validação da senha e do token ao framework, obtendo também proteção contra ataques de força bruta (brute-force throttling). Além disso, o método `ShareFileService::findValidLinkShare()` rejeita tipos de compartilhamento que não sejam link ou email, rejeita compartilhamentos expirados e trata um erro `ShareNotFound` do gerenciador de compartilhamentos como "nenhum compartilhamento", em vez de permitir que ele apareça como um erro 500. Como medida temporária (workaround), desative o aplicativo Visualizador 3D (`occ app:disable threedviewer`) ou evite depender de senhas para proteger links de compartilhamento que contenham arquivos de modelos 3D, até que você possa atualizar.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsável

GitHub M

Reservar

01/10/2026

Divulgação

27/10/2026

Moderação

aceite

Entrada

VDB-427400

EPSS

0.00000

KEV

não

Atividades

baixo

Fontes

Want to stay up to date on a daily basis?

Enable the mail alert feature now!